一、【v-show与v-if区别】
实现本质:
*v-show:*通过display : none和display: block之间切换。
*v-if:*通过DOM节点的插入,删除来实现切换
性能对比:
v-if:
切换时需要删除、插入节点开销大
但是在初始化的时候,如果条件是false是不会插入节点渲染的会节约性能。
总结:如果不是频繁切换只需要渲染时条件渲染用v-if
v-show:
有更高的初始渲染开销。就算是false也会渲染
但是在切换的时候只是改变样式。消耗少。
总结:在频繁切换的时候用v-show
二、【方法调用、computed、watch的区别】
方法:
页面数据每次重新渲染都会重新执行。性能消耗大。除非不希望有缓存的时候用。
computed:
是计算属性,依赖其他属性计算值,并且 computed 的值有缓存,只有当计算值变化才会返回内容。
watch:
监听到值的变化就会执行回调,在回调中可以进行一些逻辑操作。
总结:
除非不希望缓存,一般都不会用方法。
一般来说需要依赖别的属性来动态获得值的时候可以使用computed,
对于监听到值的变化需要做异步操作或开销较大的操作时用watch。
三、【什么是生命周期钩子函数、vue的生命周期钩子函数有哪些、你在工作中什么地方用过】
(1)什么是生命周期?
生命周期就是物体从挺生到死亡的过程,vue的生命周期就是vue从初始化到销毁的过程
(2)什么是钩子函数
在生命周期的过程中我们有很多特殊的时间段,我希望在这些特殊的时间段对vue做一些事情,所以出现了钩子函数。钩子函数就是作者在设计vue的时候,在vue从初始化到销毁这段时间内的特出时段给我们一些定义函数的权力。如果咱们定义了,就会执行,不定义就不会执行。
(3)vue都有哪些生命周期
①beforeCreate创建前
②created 创建后
③beforeMount挂载前
④mounted挂载后
⑤beforeUpdate数据更新前
⑥updated数据更新后
⑦beforeDestroy销毁前
⑧destroyed销毁后
(4)这些有什么区别意义?
①beforeCreate创建前:刚执行new的操作,其他什么都没做。
②created创建后:属性和方法挂载到了实例上面。
③beforeMount挂载前:找到了el或者mount对应的节点范围,但是数据还没有替换。
④mounted挂载后:vue范围内的变量都会被替换成data里面对应的数据值
⑤beforeUpdate数据更新前
⑥updated数据更新后
⑦beforeDestroy销毁前
⑧destroyed销毁后
(5)我们在项目中都什么时候用到?
我们在页面初始化时候需要获取数据,这个时候就可以在生命周期里面调用
四、【介绍一下vue,你觉得vue有什么特点,有什么好处,和其他你使用的框架有什么区别】
官网介绍:
渐进式的javascript框架,既可以把vue当作第三方库来使用,也可以利用vue构建复杂的单页面项目
特点:
入门容易,只需要会html,css,js就可以,如果是react还要先学习ES6,jsx,函数式编程灵活:可以当作第三方库来使用,也可以用来构架项目
高效:
虚拟DOM。
使用方便:
指令、模板、数据双向绑定和react相比,数据双向绑定可以自动修改,react需要手动执行setState组件化:和react项目vue的组件化更容易被新手接收html css js,而react都是通过js实现