美文网首页
手写一个vue双向绑定的过程

手写一个vue双向绑定的过程

作者: 南蓝NL | 来源:发表于2019-06-02 19:30 被阅读0次
  1. 通过Object.defineProperty()来进行数据劫持
    demo.html
<body>
   <div id="app">
       {{message}}
   </div>
 <script>
     var vm =  new NanLan({
         el: "#app",
         data: {
             message: 'hello vue',
             age: "29",
             hobby: "skating",
             occupation: "programmer"
         },
         template: "<div>{{message}}</div>"
     })
     vm.message = 'hello xiaojuxiaoju';
     console.log(vm.message);
 </script>
</body>

demo.js

(function (root, factory) {
    root.NanLan = factory()
})(this, function () {
    function NanLan(options) {
        this.$options = options || {};
        var data = this._data = options.data; // 实例里面的data的所有属性
        var _this = this;
        // 代理
        Object.keys(data).forEach(function (key) {
            _this._proxy(key);
        })
    }
    NanLan.prototype._proxy = function (key) {
        Object.defineProperty(this, key, {
            get: function () {
                return this._data[key]; // 这里输出的是 hello xiaojuxiaoju
            },
            set: function (newValue) {
                this._data[key] = newValue; // 将NanLan实例的值赋值给data里面与之对应的值
            }
        });
    }
    return NanLan;
})

相关文章

  • 面试题(vue)

    1,手写vue数据双向绑定Object.defineProperty() Object.definePropert...

  • 手写一个vue双向绑定的过程

    通过Object.defineProperty()来进行数据劫持demo.html demo.js

  • 深入Vue响应式原理

    1.Vue的双向数据绑定 参考 vue的双向绑定原理及实现Vue双向绑定的实现原理Object.definepro...

  • 手写 Vue 响应式框架

    手写一个简版的 Vue,实现 Vue 双向绑定,解析 v-model 指令 源码地址 整体的数据结构VueObse...

  • 02Vue.js的数据绑定

    理解Vue的双向数据绑定 Vue有一个显著的地方就是它拥有双向数据绑定功能,那么何为双向数据绑定呢?双向是指:HT...

  • Vue 中的双向数据绑定

    双向绑定 单向数据流 双向绑定 or 单向数据流 Vue 是单向数据流,不是双向绑定 Vue 的双向绑定是语法糖 ...

  • vue 之 input 的value绑定

    vue双向绑定值 vue单向绑定值

  • Vue双向绑定

    Vue双向绑定 Obejct.defineProperty的setter/getter和发布订阅 Vue双向绑定原...

  • Vue框架基础

    原生js与Vue框架的区别 用原生实现双向数据绑定 用Vue实现双向数据绑定 Vue是一个javaScript框架...

  • 值得思考的那些面试题

    vue里面的虚拟dom是怎么回事 vue双向绑定讲一讲 讲vue-lazyloader的原理,手写伪代码 讲exp...

网友评论

      本文标题:手写一个vue双向绑定的过程

      本文链接:https://www.haomeiwen.com/subject/bmhjlqtx.html