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


Posted in Javascript onApril 28, 2017

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>

实现效果:

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

2.兼容性

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

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

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

Javascript 相关文章推荐
Jquery跨域获得Json时invalid label错误的解决办法
Jan 11 Javascript
js判断输入是否为数字的具体实例
Aug 03 Javascript
js定时器怎么写?就是在特定时间执行某段程序
Oct 11 Javascript
JS JSON对象转为字符串的简单实现方法
Nov 18 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
Mar 02 Javascript
轻松学习jQuery插件EasyUI EasyUI表单验证
Dec 01 Javascript
JS采用绝对定位实现回到顶部效果完整实例
Jun 20 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
Feb 28 Javascript
Angular弹出模态框的两种方式
Oct 19 Javascript
jQuery轮播图实例详解
Aug 15 jQuery
Vue数字输入框组件示例代码详解
Jan 15 Javascript
react-native 实现购物车滑动删除效果的示例代码
Jan 15 Javascript
node.js+jQuery实现用户登录注册AJAX交互
Apr 28 #jQuery
Javascript实现数组中的元素上下移动
Apr 28 #Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
Apr 28 #jQuery
JS简单判断滚动条的滚动方向实现方法
Apr 28 #Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
Apr 28 #Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
Apr 28 #Javascript
jquery实现图片上传前本地预览
Apr 28 #jQuery
You might like
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
PHP实现函数内修改外部变量值的方法示例
2018/12/28 PHP
PDO::_construct讲解
2019/01/27 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
js的event详解。
2006/09/06 Javascript
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
IE8 原生JSON支持
2009/04/13 Javascript
jquery tab插件精简版分享
2011/09/10 Javascript
jQuery中triggerHandler()方法用法实例
2015/01/19 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
javascript框架设计之种子模块
2015/06/23 Javascript
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
jQuery实现发送验证码并60秒倒计时功能
2016/11/25 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
BootStrapTable 单选及取值的实现方法
2017/01/10 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
详解使用jQuery.i18n.properties实现js国际化
2018/05/04 jQuery
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
详解vue 兼容IE报错解决方案
2018/12/29 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
python实现飞机大战项目
2020/03/11 Python
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
塔吉特百货公司官网:Target
2017/04/27 全球购物
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
2014年创先争优活动总结
2014/05/04 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书
师范生见习总结范文
2015/06/23 职场文书