到了年底,一大批准备跳槽的程序员蠢蠢欲动, 陕西优就业小编今天就给大家分享一下大家最需要的东西。现在很多公司都要求vue、react、ng三大主流框架中的一两个。小编在此总结一下vue常见的面试题,希望对面试的小伙伴有帮助。

一、Vue的生命周期的理解
beforeCreate(创建前) 在数据观测和初始化事件还未开始。
created(创建后) 完成数据观测,属性和方法的运算,初始化事件,$el属性还没有显示出来。
beforeMount(载入前) 在挂载开始之前被调用,相关的render函数首次被调用。实例已完成以下的配置:编译模板,把data里面的数据和模板生成html。注意此时还没有挂载html到页面上。
mounted(载入后) 在el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用。实例已完成以下的配置:用上面编译好的html内容替换el属性指向的DOM对象。完成模板中的html渲染到html页面中。此过程中进行ajax交互。
beforeUpdate(更新前) 在数据更新之前调用,发生在虚拟DOM重新渲染和打补丁之前。可以在该钩子中进一步地更改状态,不会触发附加的重渲染过程。
d(更新后) 在由于数据更改导致的虚拟DOM重新渲染和打补丁之后调用。调用时,组件DOM已经更新,所以可以执行依赖于DOM的操作。然而在大多数情况下,应该避免在此期间更改状态,因为这可能会导致更新无限循环。该钩子在服务器端渲染期间不被调用。
beforeDestroy(销毁前) 在实例销毁之前调用。实例仍然完全可用。
destroyed(销毁后) 在实例销毁之后调用。调用后,所有的事件监听器会被移除,所有的子实例也会被销毁。该钩子在服务器端渲染期间不被调用。
a、第一次页面加载会触发哪几个钩子?
会先后触发beforeCreate, created, beforeMount, mounted。
b、DOM 渲染在哪个周期中就已经完成
DOM 渲染在 mounted 中就已经完成了。
二、Vue实现数据双向绑定的原理
vue实现数据双向绑定主要是:采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应监听回调。
当把一个普通 Javascript 对象传给 Vue 实例来作为它的 data 选项时,Vue 将遍历它的属性,用 Object.defineProperty 将它们转为 getter/setter。用户看不到 getter/setter,但是在内部它们让 Vue 追踪依赖,在属性被访问和修改时通知变化。
vue的数据双向绑定 将MVVM作为数据绑定的入口,整合Observer,Compile和Watcher三者,通过Observer来监听自己的model的数据变化,通过Compile来解析编译模板指令(vue中是用来解析 {{}}),最终利用watcher搭起observer和Compile之间的通信桥梁,达到数据变化 —>视图更新;视图交互变化(input)—>数据model变更双向绑定效果。
三、Vue组件间的参数传递
常见传参方式
父组件向子组件传值:
1)子组件在props中创建一个属性,用来接收父组件传过来的值;
2)在父组件中注册子组件;
3)在子组件标签中添加子组件props中创建的属性;
4)把需要传给子组件的值赋给该属性;子组件传给父组件:
$emit方法传递参数。
四、vue中的作用。
是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染。
五、vue的指令有哪些?
v-text,v-html, v-once, v-show,v-if, v-for,v-bind,v-model,自定义指令。
六、v-for中为什么使用key?
使用v-for更新已渲染的元素列表时,默认用就地复用策略;列表数据修改的时候,他会根据key值去判断某个值是否修改,如果修改,则重新渲染这一项,否则复用之前的元素;(因为Virtual DOM 使用Diff算法实现的原因)。
七、v-show和v-if指令的共同点和不同点。
v-show指令是通过修改元素的display的CSS属性让其显示或者隐藏。
v-if令是直接销毁和重建DOM达到让元素显示和隐藏的效果。
八、如何让CSS只在当前组件中起作用
将当前组件的
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69902581/viewspace-2667646/ ,如需转载,请注明出处,否则将追究法律责任。