開發過程遇到了一個問題,就是我的 router-view 里面渲染出來的組件輸入數據之后,我點擊 路由視圖外邊的導航欄 router-link 按鈕,可以實現清除 router-view 里面的數據,也就是使組件重新渲染。vm.$forceUpdate()這個方法可以使當前組件調用這個方法時,重新渲染組件。給 router-view 標簽添加 key 屬性將 key 綁定的值放在狀態管理容器里面,通過 狀態管理容器的 mutations 或者 actions 觸發 key 值的變化,即可實現重新渲染組件的目的。相關實現代碼如下
// store/view.jsconst state = { viewId: 1};const getters = { getViewId: state => { return state.viewId; }};const mutations = { setViewId: (state, payload) => { state.viewId++; }};const actions = { setViewId: (context, payload) => { context.commit("setViewId", payload); }};export default { namespaced: true, state, getters, mutations, actions};
放置 router-view 標簽的Layout 組件
觸發 viewid,使 router-view 對應的路由組件刷新的地方,比如導航欄組件。
methods: { fresh() { this.$store.dispatch("view/setViewId") }}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答