vue 通過router 解決動態(tài)組件切換刷新問題

以前對于動態(tài)組件的切換窘问,都是在index.vue下的子組件中通過this.$parent.方法名辆童,來直接調(diào)用父組件的方法實現(xiàn)組件切換,在vue中是不提倡這樣使用的惠赫“鸭可以使用this.$emit('方法名',{參數(shù)})儿咱,將事件綁定在父組件上面來使用庭砍。

image.png

另一種方法便是我要說的,通過vue路由來實現(xiàn)動態(tài)組件的切換混埠。在上面index.vue文件中包含動態(tài)組件list怠缸、edit、add三個組件钳宪,每個組件代表一個頁面揭北,頁面加載后的默認(rèn)組件是list,edit和add都是通過list頁面進(jìn)入吏颖。(動態(tài)組件的切換是在index中實現(xiàn))

在list頁面代碼

methods: {
    handleEdit() ·
      this.$router.push({
        query: {
          pagination: "edit",
          id: "0001",
        },
      }).catch(err =>{});e
    },
  },

使用this.$router.push()方法傳遞參數(shù)pagination(跳轉(zhuǎn)頁面)搔体、id(其他參數(shù)),調(diào)用方法handleEdit在地址欄能看到傳的參數(shù)

image.png

在index頁面代碼

<template>
  <div>
    <component v-bind:is="currentTabComponent"></component>
  </div>
</template>
<script>
import edit from "./edit";
import list from "./list";
export default {
  data() {
    return {
      currentTabComponent: list,
    };
  },
  watch: {
    $route(route) {
      this.handlerouter();
    },
  },
  created() {
    this.handlerouter();
  },
  components: {
    edit,
    list,
  },
  methods: {
    handlerouter() {
      const { query } = this.$route;
      const { pagination, id } = query;
      if (!pagination) return this.currentTabComponent = list;
      switch (pagination) {
        case "edit":
          this.currentTabComponent = edit;
          break;
        default:
          this.currentTabComponent = list;
      }
    },
  },
};
</script>

handlerouter()方法中半醉,通過es6語法取得參數(shù)pagination疚俱、id,判斷pagination不存在或為空時組件為list頁面并跳出方法奉呛,有pagination時计螺,通過switch判斷來切換組件。

通過watch監(jiān)聽器來監(jiān)聽$route()方法=》監(jiān)聽路由瞧壮,當(dāng)list調(diào)用handleEdit()發(fā)生路由跳轉(zhuǎn)登馒,就會被監(jiān)聽到,執(zhí)行this.handlerouter()方法咆槽。

當(dāng)在edit頁面進(jìn)行瀏覽器刷新陈轿,參數(shù)pagination、id并不會被銷毀秦忿,但頁面刷新后會重新渲染執(zhí)行created()方法麦射,在其中調(diào)用 this.handlerouter(),便能實現(xiàn)頁面頁面刷新后還是edit頁面了灯谣。

點個贊再走吧G鼻铩!胎许!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末峻呛,一起剝皮案震驚了整個濱河市罗售,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钩述,老刑警劉巖寨躁,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異牙勘,居然都是意外死亡职恳,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門方面,熙熙樓的掌柜王于貴愁眉苦臉地迎上來放钦,“玉大人,你說我怎么就攤上這事葡幸∽钔玻” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵蔚叨,是天一觀的道長。 經(jīng)常有香客問我辙培,道長蔑水,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任扬蕊,我火速辦了婚禮搀别,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尾抑。我一直安慰自己歇父,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布再愈。 她就那樣靜靜地躺著榜苫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪翎冲。 梳的紋絲不亂的頭發(fā)上垂睬,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機(jī)與錄音抗悍,去河邊找鬼驹饺。 笑死,一個胖子當(dāng)著我的面吹牛缴渊,可吹牛的內(nèi)容都是我干的赏壹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼衔沼,長吁一口氣:“原來是場噩夢啊……” “哼蝌借!你這毒婦竟也來了昔瞧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤骨望,失蹤者是張志新(化名)和其女友劉穎硬爆,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體擎鸠,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡缀磕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了劣光。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袜蚕。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖绢涡,靈堂內(nèi)的尸體忽然破棺而出牲剃,到底是詐尸還是另有隱情,我是刑警寧澤雄可,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布凿傅,位于F島的核電站,受9級特大地震影響数苫,放射性物質(zhì)發(fā)生泄漏聪舒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一虐急、第九天 我趴在偏房一處隱蔽的房頂上張望箱残。 院中可真熱鬧,春花似錦止吁、人聲如沸被辑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盼理。三九已至,卻和暖如春仁热,著一層夾襖步出監(jiān)牢的瞬間榜揖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工抗蠢, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留举哟,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓迅矛,卻偏偏與公主長得像妨猩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子秽褒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359