![](https://csdnimg.cn/release/download_crawler_static/87554832/bg3.jpg)
mounted el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子
beforeUpdate 组件数据更新之前调用,发生在虚拟 DOM 打补丁之前
update 组件数据更新之后
activited keep-alive 专属,组件被激活时调用
deactivated keep-alive 专属,组件被销毁时调用
beforeDestory 组件销毁前调用
destoryed 组件销毁后调用
v-if 与 v-for 的优先级
当 Vue 处理指令时,v-for 比 v-if 具有更高的优先级;所以不一般不能用于同一个标签上
每一次判断都需要遍历整个数组,将会十分影响性能
所以在实际开发中,我们会先判断再循环
v-if 和 v-show 的区别
①v-if 是通过控制 dom 节点的存在与否来控制元素的显隐;v-show 是通过设置 DOM 元素的
display 样式,block 为显示,none 为隐藏
②v-if 切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子
组件;v-show 只是简单的基于 css 切换;
如果是频繁的切换用 v-show,否则用 v-if
vue 中 key 的作用
1、key 的作用主要是为了高效的更新虚拟 DOM
2、不能使用 index 作为 v-for 中的 key;你删除一个数组长度为 3 的第二项,vue 会认为你
删除的是第三项,因为 index 也是连续的
3、当页面的数据发生变化时,Diff 算法只会比较同一层级的节点
4、有相同父元素的子元素必须有独特的 key。重复的 key 会造成渲染错误
虚拟 dom
virtual DOM:是将真实的 DOM 的数据抽取出来,以对象的形式模拟树形结构
template 模板(编译)==>渲染函数(执行)==>虚拟 dom==>patch(patching 算法)==>
真实 dom(视图)
虚拟 DOM 的最终目标是将虚拟节点渲染到视图上
diff 算法