當應用程序增加了複雜性,管理狀況的常用方法之一就是轉向一個狀態管理系統。
這裏是一個非常基本狀態管理系統的一個例子。
const store = {
state:{
message: "Hello World"
},
changeMessage(newMessage){
this.state.message = newMessage
}
}
Vue.component("grand-child",{
template:`
<div><button @click="sayHello">Say Hello</button></div>
`,
methods:{
sayHello(){
store.changeMessage("Hello from grand child!")
}
}
})
Vue.component("child", {
template: `
<grand-child></grand-child>
`
})
new Vue({
el:"#app",
data:{
state: store.state
}
})
這裏是它的工作的an example。其基本思想是,你卸載的state
管理外部實體,和你的Vue公司代碼變得主要是關於渲染狀態,並講述從用戶或需要作出改變的行動狀態管理系統。文件談到這種系統here。
您可以通過本土解決方案走很長的路,但項目往往復雜度不斷增加,需要更正式的狀態管理方法,這是Vue生態系統提供Vuex的地方。
就我個人而言,我不會經常發現Vuex帶來的複雜性需求,但您可能會和許多其他人一樣做。
當你有太多的嵌套組件,那麼你可以考慮使用vuex –