美文网首页
vue初级面试题

vue初级面试题

作者: 变量只提升声明不提升赋值 | 来源:发表于2021-02-22 15:24 被阅读0次

1.在vue中,为什么 data必须是一个工厂函数而不能是一个对象。

在组件的复用中,如果data是一个对象的话,那这个组件在每个地方使用都会有这个data中的状态。会导致此处修改状态影响别的地方。 而通过工厂函数的形式返回的对象就不会。因为工厂函数的每次调用,都会返回一个新的临时状态,所以这样能做到让每个组件都有自己独立的data

2.vue中如何让css只服务于当前组件,不会污染到其他组件?css如何做渗透

在style标签上添加scoped属性,生成当前作用域的css。

当引用其他插件或ui框架的时候需要渗透css或者修改原生样式可以这么做

 /* 父元素  /deep/  插件元素*/
 .parent /deep/ .swiper-silder{
    width: 30px;
}

或者加上!important

3.对vue-router熟悉么,url传参的方式有几种

第一种:params传参,在路由器模块里的url后面加上 :参数名。传参时就可以直接在url后面接上参数就可以了。接收参数的组件里通过route.params.xxx来拿到参数 第二种:query传参, 在传参的时候在url后面以问号的形式传参。接收参数的组件里通过route.query.xxx来拿到参数

4.两种传参方式有什么区别

通过params传参,在浏览器的地址栏如果刷新页面的话参数会消失。而通过query传参,参数会一直保留。params传参保密性更好

5.路由守卫有用过吗,他接收哪几个参数。

路由守卫一般用在权限展示的场景中。如:判断当前用户有没有登陆。
他接受三个参数,分别是to:将要去向的路由,from:当前路由,next()去往路由

6.父子组件之间的通信方式有哪些

父组件给子组件传值,子组件通过props接收,子组件修改父组件的值需要通过$emit来调用父组件的方法去修改。

7.多级嵌套的组件怎么通信

多级嵌套的组件不建议使用props来传值,可以用vuex来管理状态。或者是消息的发布和订阅。

8.vuex使用过吗,在组件中不通过$store.xxx.xxx这样一长串的方式获取vuex中的状态的话,还可以通过哪种方式获取?

vuex提供了mapState,mapActions,mapGetters等几种api来分别获取vuex中的内容。

9.dispach和commit谁是异步谁是同步

dispatch是异步,commit是同步。因为vuex中action是支持异步操作的,而mutation是不支持异步操作的

10.控制组件的展示切换。不通过v-if,v-show还可以通过什么方式

可以使用component标签,通过他的is属性赋值不同的组件就可以达到展示不同组件的效果

相关文章

网友评论

      本文标题:vue初级面试题

      本文链接:https://www.haomeiwen.com/subject/hztkfltx.html