(1)vue基础——1.4 数据绑定
1. Vue中有2种数据绑定的方式:
1.单向绑定(v-bind):数据只能从data流向页面。
2.双向绑定(v-model):数据不仅能从data流向页面,还可以从页面流向data。
备注:
1.双向绑定一般都应用在表单类元素上。如input、select等。
2.v-model:value 可以简写为 v-model,因为v-model默认收集的就是value值。
代码示例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>模板语法</title> <!-- 引入Vue --> <script type="text/javascript" src="../js/vue.js"></script> </head> <!-- Vue中有2种数据绑定的方式: 1.单向绑定(v-bind):数据只能从data流向页面 2.双向绑定(v-model):数据不仅能从data流向页面,还可以从页面流向data 备注: 1.双向绑定一般都应用在表单类元素上,(如:input、select等) 2.v-model:value可以简写为v-model,因为v-model默认收集的就是value值 --> <body> <!-- 准备好一个容器 --> <div id="root"> <!-- 普通写法 --> <!-- 单向数据绑定:<input type="text" v-bind:value="name"> <br> 双向数据绑定:<input type="text" v-model:value="name"> --> <!-- 简写 --> 单向数据绑定:<input type="text" :value="name"> <br> 双向数据绑定:<input type="text" v-model="name"> <!-- 如下代码是错误的,因为v-model只能应用在表单类元素(输入类元素)上 --> <!-- <h2 v-model:x='name'>LSF</h2> --> </div> <script> Vue.config.productionTip = false new Vue({ el:'#root', data:{ name:'真理', } }) </script> </body>
展示效果
2. 双向绑定的原理:
利用Object.defineProperty方法,其中用 get() 来获取 对象属性 数据,
把获取的数据利用新的属性名装起来,然后用set()调用改值来监听设置修改,当内容被修改时就会触发,并且把修改的值赋值给原来的属性名。
Object.defineProperty(obj,'age',{ // value:18, //这样添加的属性不可枚举(无法遍历) // configurable:'true', //控制属性是否可删除 // enumerable:true, //该属性控制是否可枚举性 // writable:true, //控制属性是否可修改 // 获取 get(){ console.log("你访问了obj对象的age属性"); return value=num }, // 监听设置修改 set(value){ console.log("你修改了age的值,值是",value); num=value }
声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/
如出现转载未声明 将追究法律责任~谢谢合作