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 相关文章推荐
js静态作用域的功能。
Dec 25 Javascript
使用IE的地址栏来辅助调试Web页脚本
Mar 08 Javascript
document.getElementById为空或不是对象的解决方法
Jan 24 Javascript
Underscore.js 的模板功能介绍与应用
Dec 24 Javascript
详解JavaScript中shift()方法的使用
Jun 09 Javascript
Angularjs实现多个页面共享数据的方式
Mar 29 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
Aug 08 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
Feb 11 Javascript
jQuery实现对网页节点的增删改查功能示例
Sep 18 jQuery
angularjs 获取默认选中的单选按钮的value方法
Feb 28 Javascript
select获取下拉框的值 下拉框默认选中方法
Feb 28 Javascript
微信小程序textarea层级过高的解决方法
Mar 04 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实现文件安全下载
2006/10/09 PHP
打造计数器DIY三步曲(下)
2006/10/09 PHP
php数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
20个非常棒的Jquery实用工具 国外文章
2010/01/01 Javascript
jquery动态添加option示例
2013/12/30 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
js判断是否是手机页面
2017/03/17 Javascript
移动端效果之Swiper详解
2017/10/09 Javascript
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
react redux入门示例
2018/04/19 Javascript
使用vue-router完成简单导航功能【推荐】
2018/06/28 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
手把手教你如何使用nodejs编写cli命令行
2018/11/05 NodeJs
Python实现批量下载文件
2015/05/17 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
python读取LMDB中图像的方法
2018/07/02 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
表达自我的市场:Society6
2018/08/01 全球购物
allbeauty美国:英国在线美容店
2019/03/11 全球购物
小加工厂管理制度
2014/01/21 职场文书
社区学习十八大感想
2014/01/22 职场文书
银行工作检查书范文
2014/01/31 职场文书
护理专业求职信
2014/06/15 职场文书
优秀会计求职信
2014/07/04 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
初中数学教学随笔
2015/08/15 职场文书
创业计划书之校园超市
2019/09/12 职场文书
mysql如何配置白名单访问
2021/06/30 MySQL