时间:2021-05-26
简介:
Vue 最独特的特性之一,是其非侵入性的响应式系统。数据模型仅仅是普通的 JavaScript 对象。而当你修改它们时,视图会进行更新。简单的说,就是数据变视图变。
当你把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用 Object.defineProperty 把这些属性全部转为 getter/setter。Object.defineProperty 是 ES5 中一个无法 shim 的特性,这也就是为什么 Vue 不支持 IE8 以及更低版本浏览器。
下例为模拟,Vue数据双向绑定底层实现原理
<!DOCTYPE html><html><head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>数据双向绑定底层实现</title></head><body> <button onclick="changeTest()">点我改变</button> <div id="test">哈哈哈</div> <script> let test={}; let middle=''; Object.defineProperty(test,'name',{ set(val){ console.log('触发setter');//设置、修改时触发set middle=val; watcher(); }, get(){ console.log('触发geter');//获取、使用时触发get return middle; } }) function changeTest(){ test.name="变变变";//触发setter } function watcher(){ document.getElementById('test').innerHTML=test.name;//触发get } </script></body></html>以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、前言数据双向绑定作为Vue核心功能之一,其实现原理主要分为两部分:数据劫持发布订阅模式本篇文章主要介绍Vue实现数据劫持的思路,下一篇则会介绍发布订阅模式的
我们都知道vue中可以使用modal来实现input内容数据的双向绑定。小程序好像没有提供相应的方法支持,就需要我们自己写了。原理很简单,在input上先绑定需
本文实例讲述了Vue的双向绑定原理与用法。分享给大家供大家参考,具体如下:Vue中需要输入什么内容的时候,自然会想到使用的方式来实现双向绑定。下面是一个最简单的
本文实例讲述了vue实现的双向数据绑定操作。分享给大家供大家参考,具体如下:经典的双向数据绑定修改msg{{msg}}{{"用户修改的数据:"+userAddr
关键字:Eval(单项绑定)单项的数据绑定一般用于数据展示。Eval数据绑定应用的反射原理来返回数据。Bind(双向绑定)双向的数据绑定除了展示数据,还要将界面