vue 基础 API
v-for 中 key 的作用
重绘和回流
虚拟 DOM
-
是什么?
-
为什么要用虚拟 DOM?
- 真实 DOM 一旦修改立即会触发页面重绘或回流
- 真实 DOM 太大,遍历属性更耗时
-
怎么用(diff 算法对比规则)?
- 当数据更新时,将新旧 DOM 树,逐层对比,有 Key 就对比 Key,无 Key 就地更新
无 Key
-
就地更新策略
- 尽可能的复用相同的 DOM 元素,减少 DOM 操作
Key 是 index
Key 是 id
- 唯一的字符串或数字
- 新旧 DOM 对比时,使用 Key 进行比较,差异更新
动态设置 class 和 style
class
style
-
作用
-
用法
- :style="{css 样式名: 样式值}"
- 连接符改为驼峰命名
计算属性
作用
- 依赖多个数据计算得来的结果,依赖的数据变化时会自动更新结果
特点
- 依赖数据变化会自动重新调用
- 有缓存
- 不能和 data 中的数据重名
用法
-
简单写法 computed: {
计算属性名() {
return 值(可以依赖其他地方的数据)
}
}
-
完整写法 computed: {
计算属性名: {
set(val) {},
get() { return 值 }
}
}
- 当计算属性被修改时会触发 set 方法, 并把修改的值传递过来
侦听器
作用
用法
-
简单写法 watch: {
要侦听的数据名(newVal, oldVal) {
console.log(newVal, oldVal)
}
}
-
完整写法 watch: {
要侦听的数据名: {
deep: true,
handler(newVal, oldVal) {}
}
}
|