1. 箭头函数
// 通过箭头函数,当发生on订阅事件,发生favorites时就会触发回调事件。
vm.$on( event, callback )
this.$root.$on("favorites", list => (this.favorites = list));
2. Array.reduce 函数能遍历数组并将item逐个添加到obj中。同时用...item能将item中的属性都赋值到obj的节点中,而不用一个个赋值。
// 即将item内的值处理之后,传回ojb之中
this.games = data.reduce((obj, item) => {
if (item.isfavorite == "1") {
favorites.push(item.lotterytype);
}
obj[item.lotterytype] = {
...item,
code: item.lotterytypename,
name: item.lotterytypename,
desc: item.lotterytypedesc,
type: item.lotterytype,
group: this.common.getGameGroup(item.lotterytype)
};
return obj;
}, {});
3. e.stopPropagation()和e.preventDefault()
stopPropagation也是事件对象(Event)的一个方法,作用是阻止目标元素的冒泡事件,但是会不阻止默认行为。什么是冒泡事件?如在一个按钮是绑定一个”click”事件,那么”click”事件会依次在它的父级元素中被触发 。stopPropagation就是阻止目标元素的事件冒泡到父级元素
window.event? window.event.cancelBubble = true : e.stopPropagation();
preventDefault它是事件对象(Event)的一个方法,作用是取消一个目标元素的默认行为。既然是说默认行为,当然是元素必须有默认行为才能被取消,如果元素本身就没有默认行为,调用当然就无效了。什么元素有默认行为呢?如链接<a>,提交按钮<input type=”submit”>等。当Event 对象的 cancelable为false时,表示没有默认行为,这时即使有默认行为,调用preventDefault也是不会起作用的。