是否有任何方法將vue.js組件從子組件渲染到其父項(可能不是直接父項),就像插槽一樣,但方向相反?添加vue.js組件從兒童到家
我的用例:在我的根組件中,我確實有一個<router-view>
和一個模塊的容器。從路由器視圖的任何子組件中,我希望能夠將子組件添加到模態包裝器。
我在這裏錯過了vue.js的一個特性,還是有更好的實踐來解決這個問題嗎?
是否有任何方法將vue.js組件從子組件渲染到其父項(可能不是直接父項),就像插槽一樣,但方向相反?添加vue.js組件從兒童到家
我的用例:在我的根組件中,我確實有一個<router-view>
和一個模塊的容器。從路由器視圖的任何子組件中,我希望能夠將子組件添加到模態包裝器。
我在這裏錯過了vue.js的一個特性,還是有更好的實踐來解決這個問題嗎?
羅伊Ĵ回答評價的溶液:
的解決方案是使用Dynamic Components創建在根組分的「佔位符」組分和由在冒落子組件Custom Events切換其內容。
我想我遲到了,但這裏是我爲了下一代的解決方案(只適用,如果你使用VUE路由器):
routes: [
path: '/dashboard',
name: 'dashboard',
component: DashboardIndex,
children: [{
path: 'popup',
component: PopupPlaceholder,
children: [{
path: 'a',
name: 'a',
component: A,
}, {
path: 'b',
name: 'b',
component: B,
}],
}],
]
我不完全得到的問題,但如果你使用全局組件,您可以簡單地在多個元素中重複使用它,並在每個元素中應用自己的插槽內容。 因此,在這種情況下,您將註冊一個帶有一個或多個插槽的全球* AppModal *組件,並將其用於您需要的孩子。 – JonnySerra
嗯,但如果我想有不同的模式,可以從相同的視圖,甚至可以從另一個模式內調用,這似乎不像我想要的那麼靈活。在研究這個問題時,我嘗試通過事件觸發模型($ emit和v-on),但沒有看到任何方式在父接收事件後向內容呈現內容。 – dtkahl
https://vuejs.org/v2/guide/components.html#Dynamic-Components? –