您的位置:首页 > Web前端 > Vue.js

Vue 数据双向绑定原理

2019-06-27 15:19 211 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/a305292690/article/details/93880120

Vuejs双向数据绑定原理:当你把一个普通的 JavaScript 对象传入 Vue 实例作为 

data
 选项,Vue 将遍历此对象所有的属性,并使用 
Object.defineProperty
 把这些属性全部转为 getter/setter
Object.defineProperty
 是 ES5 中一个无法 shim 的特性,这也就是 Vue 不支持 IE8 以及更低版本浏览器的原因。

下面看一个例子:

   let obj = {};
    let temp = {};
    Object.defineProperty(obj, 'val', {
        get(val) {
            return temp.val;
        },
        set(val) {
            temp.val = val;
            text.innerText = val;
            npt.value = val;
        }
    });
    npt.oninput = function () {
        obj.val = this.value;
    }

text是一个p标签,npt是一个input,这里使用temp变量是为了防止obj变量进入死循环。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: