首页 > 编程 > JavaScript > 正文

vue.js利用defineProperty实现数据的双向绑定

2019-11-19 16:41:26
字体:
来源:转载
供稿:网友

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。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持武林网!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表