利用defineProperty实现数据的双向绑定
2016-08-01 10:03
761 查看
vue.js如何实现数据的双向绑定呢?
与angular不同。
vue利用的是es5的defineproperty特性。
实现效果:
可以使用es5的兼容库:es5-shim。
与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>
实现效果:
2.兼容性
貌似es5的语法在IE9以下的浏览器不能兼容。所以vue只能兼容ie9以上的浏览器了。可以使用es5的兼容库:es5-shim。
相关文章推荐
- vue.js利用defineProperty实现数据的双向绑定
- 利用object.defineProperty实现数据与视图绑定
- 双向数据绑定实现之Object.defineProperty
- 应用defineProperty简单实现vue的双向数据绑定
- vue 数据绑定实现的核心 Object.defineProperty()
- vue 数据绑定实现的核心 Object.defineProperty()
- JavaScript使用Object.defineProperty方法实现双数据绑定
- 利用定时器实现双向数据绑定效果
- 利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的内容是否合法
- Vue源码解读——实现一个双向绑定(Object.defineProperty与observe)
- 使用Object.defineProperty实现简单的js双向绑定
- Vue 双向数据绑定原理分析 以及 Object.defineproperty语法
- 极简使用Object.defineProperty实现双向绑定
- JS中的双向数据绑定及Object.defineProperty方法
- 使用Object.defineProperty实现简单的js双向绑定
- JS中的双向数据绑定及Object.defineProperty方法
- angular.js双向数据绑定实现动画特效
- Silverlight 实现INotifyPropertyChanged接口绑定数据
- 利用unison+inotify 实现数据双向实时同步