源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-11-22 11:39 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:vue.js利用defineProperty实现数据的双向绑定
[b]vue.js如何实现数据的双向绑定呢? [/b] 与angular不同。 vue利用的是es5的defineproperty特性。 [b]1.一个小例子[/b]
<!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>

实现效果: [img]http://files.jb51.net/file_images/article/201704/2017042816281910.png[/img] [b]2.兼容性[/b] 貌似es5的语法在IE9以下的浏览器不能兼容。所以vue只能兼容ie9以上的浏览器了。 可以使用es5的兼容库:es5-shim。 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程素材网!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部