最近在用vue和vuex開發(fā)宾巍。
在.vue單文件的生命周期和vuex的actions定義中括饶,有兩段代碼讓人費(fèi)解:
pag.vue
export default {
//...
created(){
this.$store.dispatch('getUsersSize')
}
//...
}
action.js中
const actions = {
getAllUsers({commit},url){
dataapi.getData(url,(users)=>{
commit(types.RECEIVE_USERS,{users})
})
}
}
抽離出來(lái)就是{created(){}}
和{getAllUsers({commit},url){}}
正常情況下,如果將函數(shù)賦值到對(duì)象的屬性值,簡(jiǎn)稱為方法,應(yīng)該這樣寫才對(duì):
{created:function(){}}
以及{getAllUsers:function({commit},url){}}
所以我很納悶這是什么鬼東西巡蘸?
印象中ES6有個(gè)概念叫computed property,于是去查MDN擂送。
最后查到其實(shí)并不是計(jì)算屬性悦荒,而是shorthand methods names
// Shorthand method names (ES2015)
var o = {
property([parameters]) {}
};
而計(jì)算屬性其實(shí)是這樣的:
// Computed property names (ES2015)
var prop = 'foo';
var o = {
[prop]: 'hey',
['b' + 'ar']: 'there'
};
仔細(xì)對(duì)比{created(){}}
和{created:function(){}}
。
所以這個(gè)ES6 Shorthand method names語(yǔ)法糖其實(shí)就是嘹吨,省略了':function'搬味,省略了冒號(hào)和'function'。
雖然這個(gè)sugar不是很甜蟀拷,但好歹是個(gè)糖碰纬,糖多了自己寫的bug別人就看不懂了。
而人們往往對(duì)于不懂的東西问芬,都會(huì)說(shuō):666
(逃
期待和大家交流悦析,共同進(jìn)步,歡迎大家加入我創(chuàng)建的與前端開發(fā)密切相關(guān)的技術(shù)討論小組:
- SegmentFault技術(shù)圈:ES新規(guī)范語(yǔ)法糖
- SegmentFault專欄:趁你還年輕此衅,做個(gè)優(yōu)秀的前端工程師
- 知乎專欄:趁你還年輕她按,做個(gè)優(yōu)秀的前端工程師
- Github博客: 趁你還年輕233的個(gè)人博客
- 前端開發(fā)QQ群:660634678
微信公眾號(hào): 人獸鬼 / excellent_developers
努力成為優(yōu)秀前端工程師!