Vue笔记分享

24 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第29天,点击查看活动详情 >


1、 v-if v-show 的区别及使用场景

1)  v-show就是控制元素的display属性来控制显隐,且dom元素保留;而v-if是条件判断,为真元素渲染,为假元素销毁,若初始条件为假则不渲染,第一次条件变为真的时候才局部编译

2)  v-show首次渲染开销大,v-if切换开销大

3)  v-show适用于元素频繁切换的场景,v-if适合运营条件不大改变的场景

2、 v-if v-for 的优先级及原因

1)  v-for优先于v-if被解析

2)  不能一起使用,即使v-if条件为假,v-for也会将数据渲染,定义computed属性过滤数据拿出新数组来渲染

3、 key 的作用

1)      key是为了更高效的更新虚拟dom

2)      渲染组件是,key是唯一标识,判断两个节点是否为同一个的必要条件,如果没有的话,vue会认为比较的两个节点是同一个,会导致频繁更新元素,影响性能

3)      vue判断两个节点是否相同主要判断key和元素类型,如不设置key,他的值就是undefined,可能会认为是相同节点,造成大量dom更新操作

4、 Mvvm

Model-view-viewmodel。试图模型mvvm的核心,它是连接iew和model的桥梁,模型指后端传输的数据,视图指所看到的页面

两个方向

一是将模型转化为视图,即将后台传输的数据转化成所看到的页面,实现方式是:数据绑定

二是将视图转化为模型,即将所看到的页面转化成后端的数据,实现方式是:dom时间监听

这两个方向都实现的,称之为数据双向绑

5、 v-model 的实现原理

1)      v-model主要实现view层输入值影响data的属性值,data值发生改变会更新view的数值变化

2)      实际上绑定了value值和input、change事件

model层通过definedProperty来劫持每个属性,一旦监听到变化通过相关的页面元素更新。另一方面通过编译模板文件,为控件v-model绑定input事件,从而页面输入能实时更新相关data的值

6、 v-model . sync 的区别

1)      v-model针对的最终操作结果,是value,是双向绑定的结果,是change操作;如input等

2)      .sync针对的是状态,status,是update操作;如loading的状态,树结构展开等操作

3)      例外情况,组件只有一个功能是切换状态的时候,这个状态就是最终值,此时v-model可以替换sync

如果有哪里描述不准确或者有问题,欢迎大佬指正!
(≖ᴗ≖)✧