一、vue常用的性能优化方法1.由于vue2+使用了Object.defineProperty来递归监听data数据的变化,所以在构建时data中的data不要设置的太深,否则组件渲染会影响性能;2.①自定义事件和DOM事件要及时销毁;②适当使用异步组件;③合理使用keep-alive,比如缓存组件不重复渲染,比如多个静态事件Tap页面切换,比如优化性能;注意:使用keep-live后,如果在定时器清除时放在beforeDestroy中,则无效。如果定时器不能及时清零,则应在去激活状态下清零。3、合理使用v-show和v-if;合理使用计算;v-for时加key,避免和v-if同时使用。二、vue基础知识1、vue如何监听数组变化?答:Object.defineProperty不能监听数组变化。需要重新定义原型,重写pushpop等方法,实现数组监听。Vue3可以使用代理来监听数组的变化。2、vuex中的action和mutation有什么区别?答:Actions处理异步操作,但mutations不能;突变通常执行原子操作;动作可以整合多个突变。3、什么时候需要使用beforeDestory?答:取消自定义事件时event.$off;清除定时器时;取消自定义DOM事件,如窗口滚动等。4.为什么在v-for中使用key?答:必须使用key,不能是index和random;vue中的diff算法必须通过tag和key来判断是否是sameNode;减少渲染次数,提高渲染性能;5、vue组件是如何渲染和更新的?答:初始渲染流程:将模板解析成render函数,然后触发vue响应,监听数据属性gettersetter,执行render函数,生成vnode、patch(elem,vnode)。更新过程:修改数据,triggersetter,重新执行renderfunction,生成newVnode,patch(vnode,newVnode)
