溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Vue 實(shí)現(xiàn)手動(dòng)刷新組件的方法

發(fā)布時(shí)間:2020-10-10 02:59:36 來源:腳本之家 閱讀:179 作者:南波 欄目:web開發(fā)

開發(fā)過程遇到了一個(gè)問題,就是我的 router-view 里面渲染出來的組件輸入數(shù)據(jù)之后,我點(diǎn)擊 路由視圖外邊的導(dǎo)航欄 router-link 按鈕,可以實(shí)現(xiàn)清除 router-view 里面的數(shù)據(jù),也就是使組件重新渲染。vm.$forceUpdate()這個(gè)方法可以使當(dāng)前組件調(diào)用這個(gè)方法時(shí),重新渲染組件。給 router-view 標(biāo)簽添加 key 屬性將 key 綁定的值放在狀態(tài)管理容器里面,通過 狀態(tài)管理容器的 mutations 或者 actions 觸發(fā) key 值的變化,即可實(shí)現(xiàn)重新渲染組件的目的。相關(guān)實(shí)現(xiàn)代碼如下

// store/view.js
const 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 標(biāo)簽的Layout 組件

Vue 實(shí)現(xiàn)手動(dòng)刷新組件的方法

觸發(fā) viewid,使 router-view 對應(yīng)的路由組件刷新的地方,比如導(dǎo)航欄組件。

methods: {
  fresh() {
    this.$store.dispatch("view/setViewId")
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI