vue基本知识点总结面试必备

北京治疗白癜风最好的专科医院在哪 https://baijiahao.baidu.com/s?id=1703141004533571830&wfr=spider&for=pc

最近入职新的公司,整体来说还是不错的。前一阵子看了很多关于vue的知识点,自己理解着整理一下,再加深一下印象。也希望可以帮助到有需要的同学。理解错误的地方,欢迎指正。

1、对于Vue是一套渐进式框架的理解答:Vue是渐进的,没有强主张,是个轻量视图。它只做了自己应该做的事,没有做多余的事。

2、vue.js的两个核心是什么?答:数据驱动和组件化。

3、vue中的模板编译原理答:模板指的就是template。如果我们传了一个template,我们会把template转换成一个render函数,然后通过render函数返回虚拟DOM,再把虚拟的DOM变成真正的DOM。

4、响应式数据的原理答:响应式就是当数据变化的时候,可以让视图也同步更新。核心是Object.defineProperty,vue初始化的时候,Object.defineProperty依次会给data的属性上增加get和set方法,并对依赖进行收集,如果数据发生变化,就会去通知相关的依赖做出对应的更新。

5、vue生命周期钩子函数有哪些?(vue2.0)

答:①创建期间的生命周期函数:beforeCreate():此时,实例在内存中刚刚创建出来,data和methods没有被初始化。created():此时,实例已经在内存中创建完成,data和methods已经被初始化完成。模板还没有编译。beforeMount():此时,模板已经编译成功,还没有挂载到页面上。mounted():此时,编译好的模板已经挂载到了指定的位置上去。②运行期间的生命周期函数:beforeUpdate():此时,data数据发生改变后,还没有重新渲染DOM树,data的数据是最新的,但是页面上展示的还是旧数据。updated():此时,data中的数据和页面中的渲染是一致的。③销毁期间的生命周期函数:beforeDestroy():此时,实例的方法、指令都还可以使用,实例销毁之前调用。destroyed():此时,vue实例上的所有指令、绑定、监听都会被销毁,子实例也全部被销毁。

6、vue的生命周期钩子是如何实现的?答:vue的生命周期钩子实际上就是一个回调函数。当我们传入一个钩子函数时,vue内部会帮我们调用,并将生命周期钩子转换成数组,调用的时候,就又会把数组遍历一遍,类似一个发布订阅的模式。

7、vue的双向绑定的原理是什么?答:vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的。实现步骤:①.实现一个监听器Observer,用来劫持并监听所有属性,如果有变动的,就通知订阅者。②.实现一个订阅者Watcher,可以收到属性的变化通知并执行相应的函数,从而更新视图。③.实现一个解析器Compile,可以扫描和解析每个节点的相关指令,并根据初始化模板数据以及初始化相应的订阅器。

8、vue为什么要操作虚拟DOM?答:虚拟DOM就是用一个对象,来描述真实DOM。一个真实的DOM上面有非常多的属性,操作起来非常不便,为了减少DOM操作,我们在更新的时候就把需要更新的DOM先记录下来,然后更新这些需要更新的DOM,最后再根据diff算法比对,更新DOM。(vue里的diff算法是平级比较,不考虑跨级比较)虚拟DOM不依赖真实的平台环境,可以实现跨平台。

9、v-if和v-show有什么区别?答:这两个指令都是在判断DOM节点是否要显示。区别是:①.实现方式:v-if是根据后面数据的真假值判断直接从Dom树上删除或重建元素节点。v-show只是在修改元素的display的属性值,元素始终在Dom树上。②.编译过程:v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件;v-show只是简单的基于css切换;③.编译条件:v-if是惰性的,如果初始条件为假,则什么也不做;只有在条件第一次变为真时才开始局部编译;v-show是在任何条件下(首次条件是否为真)都被编译,然后被缓存,而且DOM元素始终被保留;④.性能消耗:v-if有更高的切换消耗,不适合做频繁的切换;v-show有更高的初始渲染消耗,适合做频繁的切换;

10、vue常用的修饰符答:vue修饰符主要有:①事件修饰符.stop:和原生JavaScript中的event.stopPropagation()一致,阻止事件冒泡.prevent:和原生JavaScript中的event.preventDefault()一致,阻止默认事件.capture:与事件冒泡的方向相反,事件捕获由外到内.self:只会触发自己范围内的事件,不包含子元素.once:只会触发一次。②按键修饰符.delete(捕获“删除”和”退格“键)用法上和事件修饰符一样,挂载在v-on:后面:

v-on:keyup.xxx=’yyy’input

keyup.delete=onKey/

③系统修饰符.ctrl.alt.shift.meta这些修饰符可以实现按下相应按键触发鼠标或键盘事件的监听器。

11、v-on可以监听多个方法吗?答:可以

buttonv-on={mouseenter:onEnter,mouseleave:onLeave}点我/button

12、vue.mixin的使用场景和原理是什么?答:vue.mixin可以增加公共方法,当组件初始化调用的时候,mergeOptions方法会进行合并,并针对不同的属性进行合并。vue.mixin也有很多缺点,比如依赖问题、命名问题、数据不能共享、数据来源等问题。

13、vue中key值的作用答:key的作用主要是为了高效的更新虚拟DOM。在vue中,当使用相同标签名元素的过渡切换时,也会使用到key属性,这样是为了让vue区分它们,否则vue只会替换其内部属性而不会触发过渡效果。

14、Vue组件中data为什么必须是函数?答:在newVue()中,data是可以作为一个对象进行操作的,然而在


转载请注明:http://www.aierlanlan.com/grrz/1708.html

  • 上一篇文章:
  •   
  • 下一篇文章: