一:Vue-更新监测,key的作用
1. 哪些数组方法会导致v-for更新页面?
可以改变原数组的方法
2. 有的数组方法不导致v-for更新页面, 如何处理?
拿返回的新数组, 直接替换旧数组
this.$set()方法更新某个值
3v-for更新时, 是如何操作DOM的?
循环出新的DOM结构, 和旧的DOM结构对比, 尝试复用标签就地更新内容
虚拟DOM
-
虚拟DOM是什么?
-
本质就是一个JS对象, 保存DOM关键信息
-
-
虚拟DOM的好处?
-
提高DOM更新的性能, 不频繁操作真实DOM, 在内存中找到变化部分, 更新真实DOM(打补丁)
-
key的作用
-
子元素或者内容改变会分哪2种情况比较?
-
无key, 就地更新
-
有key, 按照key比较
-
-
key值要求是?
-
唯一不重复的字符串或者数值
-
-
key应该怎么用?
-
有id用id, 无id用索引
-
-
key的好处?
-
可以提高更新的性能
-
5.如何给标签class属性动态赋值?
-
:class=“{类名: 布尔值}”, true使用, false不用
给style赋值和class区别是?
-
:class="{类名: 布尔值}”, true使用, false不用
-
:style="{css属性名: 值}"
二:计算属性
-
计算属性使用场景?
-
当变量的值, 需要通过别人计算而得来
-
-
计算属性特点?
-
函数内使用的变量改变, 重新计算结果返回
-
-
计算属性注意事项?
-
计算属性名和data里名字不能重复
-
计算属性好处是?
-
带缓存
-
依赖项不变, 直接从缓存取
-
依赖项改变, 函数自动执行并重新缓存
-
-
计算属性使用场景?
-
当变量值, 依赖其他变量计算而得来才用
-
-
三:侦听器
如何侦听到某个变量值改变呢?
-
使用watch配置项, key是要侦听的data/计算属性名
如何侦听一个对象/数组呢?
-
把侦听器写成对象形式, 给handler方法和deep:true
涉及到了哪些知识点?
-
watch深度侦听数组, deep: true
-
localStorage本地缓存里只能存储字符串
-
JSON.stringify和JSON.parse使用
-
逻辑或