?? 上一個步驟是介紹了將未來可能十分龐大的store按屬性進行了比較詳細的拆分,這樣會帶來一些好處橡娄,當然拆不拆完全取決于你。接下來我們介紹的是“常量代替XXX事件類型”滤祖,當然瓶籽,這個步驟和上一步一樣,屬于優(yōu)化的步驟汤求,做不做严拒,取決于你。當然了挤牛,你要先看看下面的介紹再決定做不做嘛巧骚,是吧,哈哈竣蹦。
- ?? 我們要在上面的基礎上需要增加一些文件
store |___index.js |___state.js |___mutations.js |___getters.js |___actions.js |___mutation-types.js <--- 新增mutation的類型 |___getter-types.js <--- 新增getter的類型 |___action-types.js <--- 新增action的類型
- ?? 多的不說沧奴,代碼很簡單,直接上代碼:
// mutation-types.js export const SET_NUM_IS_5 = 'setNumIs5' export const SET_NUM_IS_WHAT = 'setNumIsWhat'
// getter-types.js export const GET_LIST_LENGTH = 'getListLength'
// action-types.js export const SET_NUM = 'setNum'
- ?? 接下來修改對應的actions.js纲菌、mutations.js疮绷、getters.js即可,下面介紹mutations.js修改后的效果椅贱,其余的就不展示了只冻,同理即可。
import {SET_NUM_IS_5,SET_NUM_IS_WHAT} from './mutation-types' const mutations = { [SET_NUM_IS_5](state){ state.num = 5 }, [SET_NUM_IS_WHAT](state,payload){ state.num = payload.num } } export default mutations
- ?? 在使用mutation的時候山橄,請盡量按照規(guī)范的來航棱,就像這樣:
this.$store.commit(SET_NUM_IS_5)
?? 官方介紹:使用常量替代 mutation 事件類型在各種 Flux 實現中是很常見的模式贱呐。這樣可以使 linter 之類的工具發(fā)揮作用,同時把這些常量放在單獨的文件中可以讓你的代碼合作者對整個 app 包含的 mutation 一目了然驳阎。
?? 到這里馁蒂,使用“常量代替XXX事件類型”的整改就差不多了,vuex文檔中只介紹了對mutation使用這種常量代替饵隙,我個人認為沮脖,getters和actions也可以按照這種思路去整改一下芯急,這樣在多人合作的時候會帶來一些便利娶耍,且在回顧和統(tǒng)計項目中使用了哪些getters或者mutations的時候,只去看對應的types文件就好了饼酿,很方便,而且也很規(guī)范想鹰,當然药版,還是那句話,不這樣做也能實現vuex的功能惩妇,那到底要不要這么做筐乳,取決于你自己和目前的項目情況,如果你不喜歡氓皱,完全可以不這么做勃刨。