Vue面试题

1、Vue 的双向数据绑定原理是什么?

 

2、详细说一下你对 vue 生命周期的理解?

 

3、请说下封装 vue 组件的过程?

 

4、你怎么理解 vue 是一个渐进式的框架?

答:1.开发的时候需要什么就加什么。我们可以通过添加组件系统、客户端路由、大规模状态管理来构建一个完整的框架。更重要的是,这些功能相互独立你可以在核心功能的基础上任意选用其他的部件,不一定要全部整合在一起。可以看到,所说的“渐进式”。2.没有多做职责之外的事,侵入性看似没有Angular那么强,比如说,Angular,它两个版本都是强主张的,如果你用它,必须接受以下东西:必须使用它的模块机制- 必须使用它的依赖注入等!

 

5、Vue声明组件的state是用data方法,那为什么data是通过一个function来返回一个对象,而不是直接写一个对象呢?

答:当一个组件被定义, data 必须声明为返回一个初始数据对象的函数,因为组件可能被用来创建多个实例。如果 data 仍然是一个纯粹的对象,则所有的实例将共享引用同一个数据对象!通过提供 data 函数,每次创建一个新实例后,我们能够调用 data 函数,从而返回初始数据的一个全新副本数据对象。

其实也很好理解,大概意思就是:

类比与引用数据类型。如果不用function return 每个组件的data都是内存的同一个地址,那一个数据改变其他也改变了,这当然就不是我们想要的。用function return 其实就相当于申明了新的变量,相互独立,自然就不会有这样的问题;js在赋值object对象时,是直接一个相同的内存地址。所以为了每个组件的data独立,采用了这种方式。
如果不是组件的话,正常data的写法可以直接写一个对象,比如data:{ msg : ' 下载 ' },但由于组件是会在多个地方引用
的,JS中直接共享对象会造成引用传递,也就是说修改了msg后所有按钮的msg都会跟着修改,所以这里用function来每次返回一个
对象实例。

 

6、说下vue组件之间的通信?
答:父传子,兄弟之间,vuex

 

7、element-UI是什么?

答:UI框架

 

8、我在用element ui的表单验证的时候 虽然没有影响我的提交,但是一直报了这个错,请问是什么原因,错误提示如下:[Vue warn]: Invalid prop: type check failed for prop "model". Expected Object, got String.

答:无效的属性:属性“model”的类型检查失败。需要对象,得到字符串。

posted @ 2019-07-22 16:34  郗浚琦  阅读(1646)  评论(1编辑  收藏  举报
Top