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实现手把手教你月入万刀(转贴)
Nov 07 Javascript
js onpropertychange输入框 事件获取属性
Mar 26 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
Jun 02 Javascript
JavaScript 高级篇之函数 (四)
Apr 07 Javascript
javascript动态修改Li节点值的方法
Jan 20 Javascript
Jquery ajax请求导出Excel表格的实现代码
Jun 08 Javascript
jQuery实现的模拟弹出窗口功能示例
Nov 24 Javascript
javaScript封装的各种写法
Aug 14 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
Sep 16 Javascript
vue2.0父子组件间传递数据的方法
Aug 16 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
Jun 10 jQuery
webstorm建立vue-cli脚手架的傻瓜式教程
Sep 22 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
全国中波电台频率表
2020/03/11 无线电
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
js模仿jquery的写法示例代码
2013/06/16 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
js字符串转成JSON
2013/11/07 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
vue复合组件实现注册表单功能
2017/11/06 Javascript
详解javascript 变量提升(Hoisting)
2019/03/12 Javascript
js实现弹出框的拖拽效果实例代码详解
2019/04/16 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
基于JS实现简单滑块拼图游戏
2019/10/12 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
python调用cmd复制文件代码分享
2013/12/27 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
Django时区详解
2019/07/24 Python
Python学习笔记之lambda表达式用法详解
2019/08/08 Python
全面解析CSS Media媒体查询使用操作(推荐)
2017/08/15 HTML / CSS
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
中职生自荐信
2013/10/13 职场文书
高中英语教学反思
2014/02/04 职场文书
入学申请自荐信范文
2014/02/26 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
小学标准化建设汇报材料
2014/08/16 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
武夷山导游词
2015/02/03 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
公司年会晚会开幕词
2019/04/02 职场文书