一、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')