1、数据库的 1、虚拟 DOM 中 key 的作用:
key 是虚拟 DOM 对象的标识,当状态中的数据发生变化时,Vue 会根据【新数据】生成【新
的虚拟 DOM】,随后 Vue 进行【新虚拟 DOM】的差异比较,比较规则如下:
2、key 的对比规则:
1、旧虚拟 DOM 中找到了与新虚拟 DOM 相同的 key:
若虚拟 DOM 中内容没变,直接使用之前的真实 DOM
若虚拟 DOM 中内容变了,则生成新的真实 DOM,随后替换掉页面中之前的真实 DOM
2、旧虚拟 DOM 中未找到与新虚拟 DOM 相同的 key
创建新的真实 DOM,随后渲染到页面
3、用 index 作为 key 可能会引发的问题:
1、若对数据进行:逆序添加、逆序删除等破坏顺序操作:会产生没有必要的真实 DOM 更
新 ===> 界面效果没问底,但效率低
2、如果结构中还包含输入类的 DOM:会产生错误 DOM 更新 ===> 界面有问题
4、开发中如何选择 key?
1、最好使用每条数据的唯一标识作为 key,比如 id、手机号、身份证号、学号等唯一值
2、如果不存在对数据的逆序添加、逆序删除等破坏顺序操作,仅用于渲染列表用于展示,
使用 index 作为 key 是没有问题的
5、Vue 组件中 data 为什么必须是函数?
保证组件的独立性和可复用性,data 是一个函数,组件实例化的时候将会调用这个函数,
返回一个对象,计算机会给这个对象分配一个内存地址,你实例化几次,就分配几个内存地
址,他们的地址都不一样,所以每个组件中的数据不会相互干扰,改变其中一个组件的状态,
其它组件不变。
6、vuex 的 State 特性是?
state 属性是 Vuex 中用于存放组件之间共享的数据;也就是说,我们把一些组件之间共享的
状态主要存放在 state 属性中;它采用的是单一状态树——用一个对象就包含了全部的应用
层级状态。这也意味着,每个应用将仅仅包含一个 store 实例。单一状态树让我们能够直
接地定位任一特定的状态片段,在调试的过程中也能轻易地取得整个当前应用状态的快照。
7、Vue 声明组件的 state 是 data 法,那为什么 data 是通过个 function 来返回个对象,不是
直接写个对象呢?