我是靠谱客的博主 忧郁薯片,最近开发中收集的这篇文章主要介绍利用defineProperty实现数据的双向绑定,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

vue.js如何实现数据的双向绑定呢?
与angular不同。
vue利用的是es5的defineproperty特性。

1.一个小例子

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<input type="text" id="demo">
<p id="display"></p>
<script>
    var obj={};
    var bind=[];
    //触发obj对象set和get方法的时候,趁机来输出或修改bind数组的内容
    Object.defineProperty(obj,'s',{
        set:function(val){
            bind['s']=val;
        },
        get:function(){
            return bind['s'];
        }
    })
    var demo=document.querySelector('#demo');
    var display=document.querySelector('#display');
    //#demo的value值与bind['s']绑定,#display的innerHTML也与bind['s']绑定。
    demo.onkeyup=function(){
        obj['s']=demo.value;//触发了obj的set方法,等于#demo的value值赋值给bind['s']。
        display.innerHTML=bind['s'];
    }

</script>
</body>
</html>

实现效果:

这里写图片描述

2.兼容性

貌似es5的语法在IE9以下的浏览器不能兼容。所以vue只能兼容ie9以上的浏览器了。

可以使用es5的兼容库:es5-shim。

最后

以上就是忧郁薯片为你收集整理的利用defineProperty实现数据的双向绑定的全部内容,希望文章能够帮你解决利用defineProperty实现数据的双向绑定所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部