Vue 笔记(待更新中…)
$set()方法
受现代 JavaScript 的限制 (以及废弃 Object.observe),Vue 不能检测到对象属性以及数据成员的添加或删除
这样导致的结果就是页面不会自动刷新数据的变化
由于 Vue 会在初始化实例时对属性执行 getter/setter 转化过程,所以属性必须在 data 对象上存在才能让 Vue 转换它,这样才能让它是响应的
$set()
方法就是为了让数组成员改变以及对象属性改变加入Vue的监听列表
this.$set(需要添加数据的数组或者对象,需要添加的数据名,需要添加的数据值)
其中this就是该组件中的Vue实例
为什么Vue组件中的data是一个函数而不是一个对象
因为我们的组件要复用,但是我们需要每个组件都有自己单独的数据机制
函数每次在被调用的时候,数据是唯一的
而对象在被实例调用时,返回的数据存储位置是一样的,所以改变其中一个实例的数据时,其他实例数据也会被改变
Vue程序的运行过程
template ===> ast节点树 ===> render函数 ===> virtual dom(虚拟DOM) ===> 真实UI