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+CSS 图片等比缩小并垂直居中实现代码
Dec 01 Javascript
js三种排序算法分享
Aug 16 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
Oct 24 Javascript
javascript包装对象实例分析
Mar 27 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
Sep 17 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
Jun 12 Javascript
javascript实现滚动效果的数字时钟实例
Jul 21 Javascript
Bootstrap文件上传组件之bootstrap fileinput
Nov 25 Javascript
JS时间控制实现动态效果的实例讲解
Jul 31 Javascript
带你了解session和cookie作用原理区别和用法
Aug 14 Javascript
JS+HTML5 canvas绘制验证码示例
Dec 05 Javascript
JavaScript实现无限级递归树的示例代码
Mar 29 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
PHP列出MySQL中所有数据库的方法
2015/03/12 PHP
用js实现多域名不同文件的调用方法
2007/01/12 Javascript
改版了网上的一个js操作userdata
2007/04/27 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
jQuery效果 slideToggle() 方法(在隐藏和显示之间切换)
2011/06/28 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
js实现固定宽高滑动轮播图效果
2017/01/13 Javascript
JS实现简单短信验证码界面
2017/08/07 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
JavaScript设计模式之策略模式实现原理详解
2020/05/29 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
python快速建立超简单的web服务器的实现方法
2018/02/17 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
Python如何实现机器人聊天
2020/09/10 Python
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
检测浏览器对HTML5和CSS3支持度的方法
2015/06/25 HTML / CSS
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
台湾租车首选品牌:IWS艾维士租车
2019/05/03 全球购物
年度考核自我鉴定
2013/11/09 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
民事辩护词范文
2015/05/21 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
Python 如何将integer转化为罗马数(3999以内)
2021/06/05 Python
配置Kubernetes外网访问集群
2022/03/31 Servers
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers