学习Vue有一段时间了,有粉丝问我,Vue的数据代理与数据劫持到底是什么意思呢?这个过程到底发生了什么呢?今天我就来详细解释一下。
目录
一、基础知识
我们先看 Object.defineProperty()的用法:
Object.defineProperty(obj,prop,descriptor)
参数介绍:
obj:目标对象
prop:需要定义的属性或者方法的名字
descriptor:prop属性所具有的特性
可供定义的特性列表:
value :属性的值
writable:若为false,表示属性值不能重写
get:一旦目标属性被访问,则自动调用该方法,并返回该方法的调用结果
set:一旦目标属性被赋值,则自动调用该方法,进行赋值操作
configurable:若为false,则任何尝试删除目标属性,或修改目标属性的
以下特性:writable、configurable、enumerable的行为均无效
enumerable:若为true,则可以在for ... in 循环或Object.keys()可以枚举出来
二、数据代理
1、含义
通过一个对象,代理对另一个对象的操作,即:读、写操作。
2、原理
每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的:
var vm = new Vue({
// 选项options(配置项)
})