第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

帶路由器的可移動(dòng)Vuetify選項(xiàng)卡

帶路由器的可移動(dòng)Vuetify選項(xiàng)卡

猛跑小豬 2022-09-23 21:25:05
在我的 vue 應(yīng)用程序中,我有一個(gè)包含一些選項(xiàng)卡的頁面。我想根據(jù)不同的路線更改/顯示選項(xiàng)卡。為此,我用這個(gè)答案作為參考。總的來說,這工作正常!我甚至可以通過在移動(dòng)設(shè)備上滑動(dòng)來更改選項(xiàng)卡(這要?dú)w功于.@changev-tabs-items但是:?jiǎn)螕暨x項(xiàng)卡標(biāo)簽時(shí),由 加載的組件將安裝兩次?;瑒?dòng)時(shí),它只安裝一次。<router-view>原因必須與s循環(huán)內(nèi)的存在有關(guān)。<router-view><v-tab-item>如果我把它放在這個(gè)環(huán)路之外,子組件就會(huì)正確安裝一次。不幸的是,我不能再使用滑動(dòng)來更改選項(xiàng)卡,因?yàn)閮?nèi)容是分離的。所以:是否有機(jī)會(huì)同時(shí)具有這兩種功能(動(dòng)態(tài)路由內(nèi)容和可移動(dòng)性)?謝謝你們!維尤:<template> <!-- [...] --> <v-tabs centered="centered" grow v-model="activeTab">    <v-tab v-for="tab of tabs" :key="tab.id" :id="tab.id" :to="tab.route" exact>      <v-icon>{{ tab.icon }}</v-icon>    </v-tab>    <v-tabs-items v-model="activeTab" @change="updateRouter($event)">      <v-tab-item v-for="tab of tabs" :key="tab.id" :value="resolvePath(tab.route)" class="tab_content">        <!-- prevent loading multiple route-view instances -->        <router-view v-if="tab.route === activeTab" />      </v-tab-item>    </v-tabs-items>  </v-tabs>  <!-- [...] --></template><script>data: () => ({    activeTab: '',    tabs: [      {id: 'profile', icon: 'mdi-account', route: '/social/profile'},      {id: 'friends', icon: 'mdi-account-group', route: '/social/friends'},      {id: 'settings', icon: 'mdi-cogs', route: '/social/settings'},    ]  }),  methods: {    updateRouter(tab:string) {      this.$router.push(tab)    }  },</script>路由器:{    path: "/social",    component: () => import("../views/Social.vue"),    meta: {      requiresAuth: true    },    children: [      {        path: "profile",        component: () => import("@/components/social/Profile.vue")      },      {        path: "friends",        component: () => import("@/components/social/Friendlist.vue")      },      {        path: "settings",        component: () => import("@/components/social/ProfileSettings.vue")      }    ]  }
查看完整描述

2 回答

?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊

這種行為能描述事物的秩序嗎?@change更新路徑后活動(dòng)選項(xiàng)卡,單擊選項(xiàng)卡更新路線,然后激活選項(xiàng)卡?因此,在選項(xiàng)卡視圖更新之前,路由器視圖位于下一個(gè)視圖上,因此它在同一路徑上顯示兩個(gè)不同的路由器視圖。

要解決此問題,只需更改

<router-view v-if="tab.route === activeTab" />

<router-view v-if="tab.route === $route.fullPath && tab.route === activeTab" />

<router-view v-if="tab.route === $route.path && tab.route === activeTab" />


查看完整回答
反對(duì) 回復(fù) 2022-09-23
?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊

我有一個(gè)不同的答案要提供。@Estradiaz的答案對(duì)我不起作用,因?yàn)槲业哪承┻x項(xiàng)卡中有子視圖,并且從選項(xiàng)卡重定向到該選項(xiàng)卡上的第一個(gè)子視圖。最終結(jié)果是,我有很多情況,其中$route.path 與 tab.route 不匹配,因?yàn)?tab.route 是選項(xiàng)卡的路由,而 $route.path 指向該選項(xiàng)卡的一個(gè)子級(jí)。


我確實(shí)找到了一種我認(rèn)為更好,更普遍適用的替代解決方案。但在我開始討論之前,我想充分解釋一下正在發(fā)生的事情。


因?yàn)槲覀兪褂玫氖?的 :to 屬性,所以我們讓路由器處理組件的所有選擇和顯示。這意味著在基礎(chǔ)設(shè)施有機(jī)會(huì)做出反應(yīng)之前,路由會(huì)發(fā)生變化。例如,如果我們有2個(gè)選項(xiàng)卡,而我顯示的是選項(xiàng)卡1,那么顯示的是這個(gè)(你可以在你的html中看到這個(gè))


<v-tabs-items>

  <v-tab-item><router-view>tab 1 component</router-view></v-tab-item>

  <--- tab 2 commented out --->

</v-tabs-items>

然后,當(dāng)我們單擊選項(xiàng)卡2時(shí),會(huì)發(fā)生什么:


<v-tabs-items>

  <v-tab-item><router-view>tab 2 component</router-view></v-tab-item>

  <--- tab 2 commented out --->

</v-tabs-items>

然后一段時(shí)間過去了,代碼開始更新,你過渡到這個(gè):


<v-tabs-items>

  <--- tab 1 commented out --->

  <v-tab-item><router-view>tab 2 component</router-view></v-tab-item>

</v-tabs-items>

但是由于 v-if 已更改,因此我們正在銷毀 for 選項(xiàng)卡 1 和新的選項(xiàng)卡 2 組件,結(jié)果只有 for 選項(xiàng)卡 2 創(chuàng)建選項(xiàng)卡 2 組件的新實(shí)例。


基礎(chǔ)結(jié)構(gòu)上似乎沒有任何內(nèi)容可用于知道顯示的選項(xiàng)卡和 中的組件不匹配。@Estradiaz的解決方案適用于簡(jiǎn)單的選項(xiàng)卡組件,但它并不可靠。


我沒有試圖阻止不匹配的情況,而是通過此解決方案來接受它,并在我們吹走選項(xiàng)卡1時(shí)使用保持活動(dòng)狀態(tài)的基礎(chǔ)結(jié)構(gòu)來“重用”。以下是問題中給出的原始標(biāo)記的樣子:


<template>

 <!-- [...] -->

 <v-tabs centered="centered" grow v-model="activeTab">

    <v-tab v-for="tab of tabs" :key="tab.id" :id="tab.id" :to="tab.route" exact>

      <v-icon>{{ tab.icon }}</v-icon>

    </v-tab>


    <v-tabs-items v-model="activeTab" @change="updateRouter($event)">

      <v-tab-item v-for="tab of tabs" :key="tab.id" :value="resolvePath(tab.route)" class="tab_content">

        <div v-if="tab.route === activeTab">

          <keep-alive>

            <router-view key="1"  />

          </keep-alive>

        </div>

      </v-tab-item>

    </v-tabs-items>

  </v-tabs>

  <!-- [...] -->

</template>

現(xiàn)在,當(dāng)您單擊選項(xiàng)卡2時(shí),將發(fā)生以下情況:


<v-tabs-items>

  <v-tab-item><router-view>tab 2 component</router-view></v-tab-item>

  <--- tab 2 commented out --->

</v-tabs-items>

路由器視圖現(xiàn)在創(chuàng)建選項(xiàng)卡 2 組件并顯示它。一段時(shí)間過去了,v-Tab 基礎(chǔ)結(jié)構(gòu)更新,標(biāo)記也發(fā)生了變化:


<v-tabs-items>

  <--- tab 1 commented out --->

  <v-tab-item><router-view>tab 2 component</router-view></v-tab-item>

</v-tabs-items>

但是現(xiàn)在,當(dāng)從dom中刪除原始文件時(shí),它不會(huì)被刪除,而是被緩存。當(dāng)創(chuàng)建新的組件時(shí),它來自緩存,準(zhǔn)備與已經(jīng)構(gòu)建的選項(xiàng)卡2組件一起使用。


就我而言,這可以完美地消除正在發(fā)生的雙重安裝。而且它可能更快一些,因?yàn)樗槐卦诿看吻袚Q時(shí)重新創(chuàng)建。


查看完整回答
反對(duì) 回復(fù) 2022-09-23
  • 2 回答
  • 0 關(guān)注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)