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中使用setInterval和setTimeout的方法
Apr 08 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
Jun 24 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
Mar 04 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
Apr 06 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
May 27 Javascript
用jQuery实现优酷首页轮播图
Jan 09 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
Jun 12 Javascript
vue组件watch属性实例讲解
Nov 07 Javascript
Angular简单验证功能示例
Dec 22 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
Sep 12 Javascript
简单了解TypeScript中如何继承 Error 类
Jun 21 Javascript
ES6中Promise的使用方法实例总结
Feb 18 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
晶体管单管来复再生式收音机
2021/03/02 无线电
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
PHP不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
php实现的日历程序
2015/06/18 PHP
passwordStrength 基于jquery的密码强度检测代码使用介绍
2011/10/08 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
JQuery Mobile 弹出式登录框的实现方法
2016/05/28 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
jQuery实现轮播图效果demo
2020/01/11 jQuery
JavaScript中的this妙用实例分析
2020/05/09 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
Python获取apk文件URL地址实例
2013/11/01 Python
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
Python使用Flask框架获取当前查询参数的方法
2015/03/21 Python
Python字符串处理实现单词反转
2017/06/14 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
美国汽车零部件和配件网站:CarParts
2019/03/13 全球购物
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
Fenty Beauty官网:蕾哈娜创立的美妆品牌
2021/01/07 全球购物
技术总监的工作职责
2013/11/13 职场文书
国际会议邀请函范文
2014/01/16 职场文书
专业求职信撰写要诀
2014/02/18 职场文书
高一军训的心得体会
2014/09/01 职场文书
2015年底工作总结范文
2015/05/15 职场文书
餐馆开业致辞
2015/08/01 职场文书
小学班级口号大全
2015/12/25 职场文书
党风廉政建设心得体会(2016最新版)
2016/01/22 职场文书
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS
redis实现的四种常见限流策略
2021/06/18 Redis