項目中重度依賴vuex和watch,組件化非常方便,但是組件之間的數(shù)據(jù)、狀態(tài)共享一直非常難處理,所以在使用了vuex后便重度依賴,并且大量使用了watch,在vue官網(wǎng)中一直不推薦使用watch,而是使用computed代替,但是現(xiàn)在也找不到一個合適的方法,下面用一個例子展示。a頁面和b頁面,b頁面中有5段文字,點(diǎn)擊文字后,a頁面的數(shù)據(jù)會加上選擇的數(shù)據(jù),一直累加。類似現(xiàn)在的解決方法是,每次點(diǎn)擊文字,通過commit修改state的變量,a頁面使用watch監(jiān)聽state變量的變化,如果改變則添加上新的數(shù)據(jù)。代碼使用了decorator和typescript//a頁面的監(jiān)聽@Watch("content")
ChangeContent(x: string) { if (!x) return; this.text += this.content;
}//b頁面發(fā)送
ChooseText(x: string) { this.ChangeContent(x);
}//statecontent:null//mutationChangeContent(state,x){
state.content=x
}
其中代碼有部分省略,但是無關(guān)緊要。其中方法還有部分邏輯沒有寫,比如2次選中相同數(shù)字,watch是不會執(zhí)行?,F(xiàn)在想知道除了使用watch能監(jiān)聽到變化,并執(zhí)行相應(yīng)邏輯,還有沒有其他的方法。例如computed。這只是其中的一小部分,以后碰到像是這樣的問題,代碼的設(shè)計思路是什么。謝謝。
vue重度使用vuex和watch的解決方法
繁星點(diǎn)點(diǎn)滴滴
2019-02-09 22:36:28