這篇文章給大家分享的是有關(guān)如何解決Vue相同路由不同參數(shù)的刷新問(wèn)題的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
汾陽(yáng)ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書(shū)合作)期待與您的合作!
在使用vue和vue-router開(kāi)發(fā)spa應(yīng)用時(shí),我們會(huì)遇到這樣一種問(wèn)題。
當(dāng)頁(yè)面跳轉(zhuǎn)時(shí),組件本身并沒(méi)有發(fā)生改變:
// 路由映射關(guān)系'/form/:type' // 當(dāng)前頁(yè)面路由/form/shop1 this.$router.push({ name: 'form', params: { type: 'shop2' })
這時(shí)我們進(jìn)行路由跳轉(zhuǎn)后會(huì)發(fā)現(xiàn)組件并沒(méi)有刷新,在前一個(gè)路由組件的數(shù)據(jù)都保留了下來(lái),這并不是我們想要的效果。
對(duì)于簡(jiǎn)單的數(shù)據(jù)更新,我們可以直接監(jiān)聽(tīng)路由參數(shù)并重新獲取路由的初始化數(shù)據(jù)即可,
但是對(duì)于有很多子組件需要初始化或者reset的情況,我們還是有必要重新執(zhí)行組件的生命周期。
針對(duì)這種情況可以使用三種方式解決:
1.為相同路由頁(yè)面的跳轉(zhuǎn)進(jìn)行中間路由替換,在router上注冊(cè)beforeEach全局守衛(wèi)進(jìn)行攔截,跳轉(zhuǎn)到一個(gè)中間路由(例如empty),再?gòu)闹虚g過(guò)渡路由跳轉(zhuǎn)至要去的路由。
// 全局導(dǎo)航守衛(wèi) router.beforeEach((to, from, next) => { if (to.name === from.name && to.params.type !== from.params.type) { next({ name: 'empty', query: { toPath: to.fullPath } }) } else { next() } }) // 中間過(guò)渡路由 let toPath = this.$route.query.toPath if (this.toPath) { this.$router.push({ path: this.toPath }) }
2.使用v-if重新渲染當(dāng)前頁(yè)面組件
// html部分 <div> <router-view v-if="showRouterView"/> </div> // script部分 export default { data () { return { isRouterAlive: true } }, methods: { reload () { this.showRouterView = false this.$nextTick(() => (this.showRouterView = true)) } } }
這樣把方法注冊(cè)到跟組件上,對(duì)于想刷新的組件直接調(diào)用reload方法即可。
3.使用vue文檔組件綁定的key值來(lái)進(jìn)行強(qiáng)制刷新
vue文檔說(shuō)明了當(dāng)你需要
完整地觸發(fā)組件的生命周期鉤子
觸發(fā)過(guò)渡
的時(shí)候可以利用更新組件綁定的key值來(lái)完成更詳細(xì)的說(shuō)明
這樣直接為組件綁定與路由參數(shù)關(guān)聯(lián)的值即可
<MyComponent :key="routeParams" />
綜合來(lái)看,第三種方式最簡(jiǎn)單,推薦使用。
感謝各位的閱讀!關(guān)于“如何解決Vue相同路由不同參數(shù)的刷新問(wèn)題”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
新聞名稱:如何解決Vue相同路由不同參數(shù)的刷新問(wèn)題
當(dāng)前URL:http://vcdvsql.cn/article30/jhisso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、App設(shè)計(jì)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)