一、Vue.set和this.$set的区别

受 ES5 的限制,Vue.js 不能检测到对象属性的添加或删除。因为 Vue.js 在初始化实例时将属性转为 getter/setter,所以属性必须在 data 对象上才能让 Vue.js 转换它,才能让它是响应的。
正确写法:this.$set(this.data,”key”,value’)

var vm=new Vue({
    el:'#test',
    data:{
        //data中已经存在info根属性
        info:{
            name:'小明';
        }
    }
});
//给info添加一个性别属性
Vue.set(vm.info,'sex','男');

Vue.set是将set绑定在vue的构造函数上,而this.$set是直接挂载在vue的原型上。

二、$on和$emit事件

$emit是触发事件 $on是监听事件

// 监听slotValueChange事件
created() {
    this.$on('slotValueChange', this.slotValueChange);
},
slotValueChange() {
    this.$emit('change', this.values, this);
},

三、$('body').off().on()

// 点击事件委托,向下冒泡,匹配到button的类则触发
$('body').on('click', '.button', (e) => {})

// 避免多个事件触发,可以在点击事件之前先移除当前button的所有事件,on和off的参数需要保持一致
$('body').off('click', '.button')

羽玉
10 声望0 粉丝

« 上一篇
ts学习总结
下一篇 »
vue3的小知识