1: props & $emit
2:依賴注入(provide inject )
3:處理邊界
4:eventbus
5:vuex
下面詳細介紹vuex方式的資料傳遞:
vuex 是乙個專為 vue.js 應用程式開發的狀態管理模式。它採用集中式儲存管理應用的所有元件的狀態,並以相應的規則保證狀態以一種可**的方式發生變化。
白話解釋
每乙個 vuex 應用的核心就是store(倉庫)。「store」基本上就是乙個容器,它包含著你的應用中大部分的狀態 (state)。vuex 和單純的全域性物件有以下兩點不同:
建立乙個store
//建立store之前確保已經引入vuex.js或在模組化構建系統中,請確保在開頭呼叫了 vue.use(vuex)
const store =
newvuex.store(,
//getters相當於自定義元件中的computed
getters:},
//mutations相當於自定義元件中的methods,只能做同步的操作
//使用commit 觸發 mutations
mutations:},
//actions非同步操作,例如ajax請求
//使用dispatch觸發 actions
actions:
})
state
vuex 使用單一狀態樹,這就意味著,每個應用將僅僅包含乙個 store 例項。
vuex中的state相當於元件中的data。
通過使用store.state / this.$store.state
>
<
/div>
const store =
newvuex.store(}
);const counter =
}--}`,
computed:}}
//vue物件要放在最底層
const vm =
newvue(,
components:,}
)<
/script>結果:
雖然root中有data資料,但是不會從date中取資料
getter
vuex 允許我們在 store 中定義「getter」(可以認為是 store 的計算屬性)。就像計算屬性一樣,getter 的返回值會根據它的依賴被快取起來,且只有當它的依賴值發生了改變才會被重新計算。
getter 接受 state 作為其第乙個引數:
const store =
newvuex.store(,
]}, getters:}}
);const counter =
}---}---}`,
computed:}}
const vm =
newvue(,
})
結果:
)
'事件型別','事件引數');
控制台列印結果:
action
action 類似於 mutation,不同在於:
非同步過程簡單來說就是,通過(dispatch)呼叫actions中的函式,函式中做非同步請求資料,
請求結果作為同步函式的引數,(commit)呼叫actions中的同步函式,在同步函式中實現對state裡的變數賦值
Vue 元件之間共享資料的方式
父 自定義屬性名 資料 要傳遞 value 資料 子 props 父元件上的自定義屬性名 進行資料接收 在註冊元件中,繫結乙個動態自定義屬性名並且賦值 自定義屬性名 xx 父傳子 父 父傳子 子 我是 子 this.emit 自定義事件名稱 資料 子元件標籤上繫結 自定義事件名稱 函式 父 meth...
Vue元件間的通訊
1 父子元件之間的通訊 a 父 子 父元件傳遞資料給子元件 使用props b 子 父 在父元件上呼叫子元件內定義的方法 使用ref c 子 父 父元件獲取子元件內的資料 使用ref d 子 父 子元件內觸發事件,父元件監聽事件 使用 emit 可以把看成是乙個普通的html元素,註冊了dialog...
Vue 元件間的通訊
元件 component 是 vue.js 最強大的功能之一。元件可以擴充套件 html 元素,封裝可重用的 元件系統讓我們可以用獨立可復用的小組件來構建大型應用,幾乎任意型別的應用的介面都可以抽象為乙個元件樹 上面展示的可以引入所有 vue 元件的關係形式 使用props,父元件可以使用props...