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+Dhtml:WEB程序员简易开发工具包(预先体验版)
Nov 07 Javascript
Javascript处理DOM元素事件实现代码
May 23 Javascript
js将字符串转成正则表达式的实现方法
Nov 13 Javascript
jQuery中replaceWith()方法用法实例
Dec 25 Javascript
JS动态添加iframe的代码
Sep 14 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
Jan 03 Javascript
浅析BootStrap Treeview的简单使用
Oct 12 Javascript
用Vue.js实现监听属性的变化
Nov 17 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
Sep 13 Javascript
AngularJS中controller控制器继承的使用方法
Nov 03 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
Aug 09 Javascript
Node.js API详解之 V8模块用法实例分析
Jun 05 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
德生9700DX电路分析
2021/03/02 无线电
一个PHP操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
php生成EAN_13标准条形码实例
2013/11/13 PHP
ThinkPHP权限认证Auth实例详解
2014/07/22 PHP
详解PHP中的Traits
2015/07/29 PHP
PHP浮点数的一个常见问题
2016/03/10 PHP
PHP单例模式是什么 php实现单例模式的方法
2016/05/14 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
Prototype Selector对象学习
2009/07/23 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
javascript实现dom元素可拖动
2016/03/21 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
2018/08/16 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
Python设计模式之工厂模式简单示例
2018/01/09 Python
pyshp创建shp点文件的方法
2018/12/31 Python
Python中的异常处理try/except/finally/raise用法分析
2019/02/28 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
Python修改DBF文件指定列
2020/12/19 Python
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
《临死前的严监生》教学反思
2014/02/13 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
房地产促销活动方案
2014/03/01 职场文书
优乐美广告词
2014/03/14 职场文书
党员承诺书内容
2014/03/26 职场文书
医德医风自我评价
2014/09/19 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
初中家长意见
2015/06/03 职场文书
院系推荐意见
2015/06/05 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书