视频地址
https://pan.baidu.com/s/1sndXz3Z?fid=380327865135528
笔记
<div id="app"> <!--表单元素 input checkbox textarea radio select--> <!--vue的“指令”directive 只是dom上的行间属性,vue给这类属性赋予一定的意义 来实现特殊的功能 所有指令都以v-开头,value属性默认情况下会vue忽略掉 selected checked 都没有意义--> <!--v-model会将msg的值会赋予输入框,输入框的值改变了会影响数据--> <input type="text" v-model="msg"> <!--Object.defineProperty ES5 --> <!--v-text === {{}} 防止{{}}出现在页面上--> <div v-text="msg"></div> <!--v-once 只绑定一次 当数据再次发生变化 也不导致页面刷新--> <div v-once>{{msg}} {{msg}}</div> <!--v-html 把html字符当作html渲染,一定是可以信任的html xss攻击--> <div v-html="p"></div> </div> <script src="node_modules/vue/dist/vue.js"></script> <script> let vm = new Vue({ el:'#app', data:{ msg:'hello', p:'<h1>hello</h1>' } }) </script>
<input type="text" id="input"> <script> let obj = {}; let temp = {}; Object.defineProperty(obj,'name',{ get(){ // 取obj的name属性会触发 return temp["name"]; }, set(val){ // 给obj赋值会触发get方法 temp["name"] = val; // 改变temp的结果 input.value = val; // 将值赋予输入框 } }); input.value = obj.name; // 页面一加载时 会调用get方法 input.addEventListener('input',function () { // 等待输入框的变化 obj.name = this.value; // 当值变化时会调用set方法 }); /*Object.defineProperty(obj,'name',{ configurable:false,// 是否可删除 writable:false, // 是否可重新赋值 enumerable:false, // 是否可枚举 value:1 })*/ </script>
转载请注明: Vue教程中文网 - 打造国内领先的vue学习网站-vue视频,vue教程,vue学习,vue培训 » defineProperty