defineProperty

Vue视频 小白 暂无评论

视频地址

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

喜欢 ()or分享