Vue2.x 是使用 Object.defindProperty(),来进行对对象的监听的。Vue3.x 版本之后就改用Proxy进行实现的。它们可以理解为在目标对象前架设一“拦截”层,外界对该对象的访问都必须先通过这层拦截,因此提供一种机制,可以对外界的访问进行过滤和改写。本文章对这两种方式做一些简单使用介绍 ,后续会进行更深入的分析介绍。
Object.defineProperty的基本使用
基本语法
Object.defineProperty(obj, prop, descriptor);
- obj: 可以理解为目标对象。
- prop: 目标对象的属性名。
- descriptor: 对属性的描述。它是由两部分组成,分别是:数据描述符和访问器描述符,数据描述符的含义是:天使动漫它是一个包含属性的值,并说明这个属性值是可读或不可读的对象。访问器描述符的含义是:包含该属性的一对 getter/setter方法的对象
示例:
Object.defineProperty(obj, 'name', {
'value': 'jack',
'writable': true,
'enumerable': true,
'configurable': true
});
直接上代码实现一个基本的双向绑定
<!DOCTYPE html>
<html lang="en&#