首页 / js教程

    vue双向绑定的原理是什么?vue双向绑定的原理实现

    作者:PHP中文网2018-09-15 16:39:27

    本篇文章给大家带来的内容是关于vue双向绑定的原理是什么?vue双向绑定的原理实现,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    先上效果图

    3679680495-5b9b7a8cb59da_articlex.gif

    简单的实现数据的双向绑定
    首先来了解一个东西:Object.defineProperty()

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty

    这里是MDN对这个的详细说明
    简单点说:

    这个方法可以修改现有对象属性的值
    Object.defineProperty(obj, prop, descriptor)
    参数说明:
    obj:定义属性的对象
    prop:修改的属性
    descriptor:修改的属性描述符

    这边只挑最简单的说,

    get:

    官方:一个给属性提供 getter 的方法,如果没有 getter 则为 undefined。当访问该属性时,该方法会被执行,方法执行时没有参数传入,但是会传入this对象(由于继承关系,这里的this并不一定是定义该属性的对象)。默认为 undefined。

    **简单的说:当你需要取对象的属性值时,就是来调用这个函数,取到值的**

    set:

    官方:一个给属性提供 setter 的方法,如果没有 setter 则为 undefined。当属性值修改时,触发执行该方法。该方法将接受唯一参数,即该属性新的参数值。默认为 undefined。

    **简单的说:当你需要设置(改变)对象的属性值时,就是来调用这个函数,达到修改的**

    接下来上代码

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <meta name="viewport" content="width=device-width, initial-scale=1">
            <title></title>
        </head>
        <body>
            <div id="aa"></div>
            <div>
                <input type="text" oninput="changedata(this.value)">
            </div>
            <script>
                var data = {};
                var dom_aa = document.getElementById("aa")
                
                function changedata(value){
                    data.a = value
                }
    
                //直接使用Object.defineProperty里面的set方法进行视图改变
                Object.defineProperty(data,"a",{
                    set:function(newValue){
                        dom_aa.innerHTML = newValue;
                    },
                    get:function(){
                        return a;
                    }
                })
            </script>
        </body>
    </html>

    相关推荐:

    Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)

    vue双向数据绑定原理探究

    以上就是vue双向绑定的原理是什么?vue双向绑定的原理实现的详细内容,更多请关注php中文网其它相关文章!

    标签:

PHP中文网

未登录