定義說明:
- provide 和 inject 這對選項是在一起使用的, 以允許 一個祖先組件 向其所有的子孫組件 注入一個依賴, 不論組件的層次有多深, 都會在起 上下游 (父子/ 爺孫) 關(guān)系里 始終生效
- 也就是說: 如果組件的引入層次過多, 我們的子孫組件想要獲取祖先組件的資源(data中的狀態(tài) 或者 methods中定義的方法), 就可以使用 provide 和 inject 這對選項進(jìn)行解決
provide
- provide 是一個對象, 或者是一個返回對象的函數(shù), 里面包含有要傳遞給子孫后代的 資源;
inject
- inject 是一個字符串?dāng)?shù)組, 后者是一個對象
示例:
-
父組件中: 在 methods定義了一個 加載表格數(shù)據(jù)的方法: loadTable()
data () { return {} }, provide: { return { loadTable: this.loadTable } }, methods: { loadTable () { //... } }
-
然后在后代組件中: 使用 inject 接收父組件 暴露(傳遞)的 方法: loadTable
data () { return {} }, inject: ['loadTable'],
之后, 就可以在后代組件中, 使用 this.loadTable() 調(diào)動 reject接收的loadTable方法