我有一個名爲App.vue的主要組件,它包含一些html div元素和一個路由器視圖。形成一個分配給路由的組件,我想在App.vue中顯示/隱藏div(如果在子組件中單擊一個按鈕,在父組件中顯示一個div,爲另一個按鈕顯示另一個div,.etc)。我嘗試傳遞一個道具到路由器視圖並更新prop prom孩子,但它顯示錯誤。我怎樣才能做到這一點?從vue.js中的子組件更改父組件
0
A
回答
0
你可以聽一個事件在router-view
標籤,並採取相應的行動:
const child = {
template: `<div style="margin-bottom:100px">
<button @click="$emit('clicked')">Toggle div</button>
</div>`
}
const router = new VueRouter({
routes: [ { path: '/child', component: child } ]
})
new Vue({
router,
el: '#app',
data: { displayMe: 'block' },
methods: {
toggleMe: function() {
this.displayMe = (this.displayMe === 'block') ? 'none' : 'block';
}
}
})
#hideme {
width: 100px;
height: 100px;
background: orange
}
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
<div id="app">
<div>
<div id="hideme" :style="{display: displayMe}"></div>
</div>
<router-link to="/child">Visit child</router-link>
<router-view @clicked="toggleMe()"></router-view>
</div>
對於多個divs
,您可以將事件傳遞給一些數據,並通過$event
處理函數的參數(例如:toggleMe($event)
)接收它,並分別解析樣式屬性。例如,您可以使用ref屬性跟蹤每個div
屬性,並使用{ '1': 'block', ...}
之類的結構保存具有data
對象的對象,並使用方法檢索樣式。
0
相關問題
- 1. 從子組件中更新父組件
- 2. 子組件更改父組件狀態
- 3. 如何使用父組件中的Vue.js子組件的數據?
- 4. 父組件如何與Vue.js中的子組件通信?
- 5. 從同級組件Vue.JS更改組件數據的狀態2.0
- 6. vue.js孩子父母組件通信
- 7. 父/子組件VUE.JS 2.1.6數據傳遞
- 8. Vue.js訪問父組件
- 9. 如何從Vue.js中的子組件訪問父方法?
- 10. 如何更改子組件的父組件的狀態?
- 11. Vue.js從子組件中關閉模式
- 12. Vue.js - 更新子組件的功能
- 13. 更改子組件變量時的父組件變量
- 14. Vue.js - 如何呈現子組件中的數據更改?
- 15. 從父組件訪問子組件
- 16. 談論組件兒童父母和孩子的父母vue.js
- 17. 如何從子組件中調用父組件中的事件?
- 18. 從父組件傳遞數組到AngularJS中的子組件
- 19. 從子組件導航時更新父組件(角度)
- 20. Vue.js:根據子組件的狀態禁用父組件上的按鈕
- 21. 如何在父組件中使用可修改的子組件?
- 22. Vue.js - 組件內部組件
- 23. 如何排除父組件的ajax更新中的子組件?
- 24. Vue.js從組件方法更新模板
- 25. 使用子組件中的函數更改父組件的狀態
- 26. 如何從子組件中調用父組件中的方法?
- 27. Vue.js - 在單個文件組件中使用子組件
- 28. 如何通過更改Angular4中的子組件中的值來更新父組件中數組的長度?
- 29. Angular2 - 在父組件中更改Variabel?
- 30. Angular2 - 從父組件中的子組件運行函數