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