vue實(shí)現(xiàn)進(jìn)入某個(gè)頁(yè)面后替換地址欄路徑的操作方法
vue實(shí)現(xiàn)進(jìn)入某個(gè)頁(yè)面后替換地址欄路徑
需求背景:a系統(tǒng)進(jìn)入b系統(tǒng)首頁(yè)("/index")需要攜帶token,如 example.com/index?token="thisIsMyToken" 需要再b系統(tǒng)中將地址欄攜帶的token清除
getBtnType(type) {
this.$router.push({
path: "/",
query: {
token: 'thisIsMyToken'
},
})
},b系統(tǒng)中的router/index.js
router.beforeEach((to, from, next) => {
if (to.query.token) {
localStorage.setItem("myToken", to.query.token)
router.replace({ path: "/" }).then((res) => {
next();
})
}
});vue重新加載/刷新當(dāng)前頁(yè)面 改變url參數(shù)觸發(fā)頁(yè)面生命周期
vue頁(yè)面在實(shí)際開發(fā)中,經(jīng)常會(huì)遇到改變url參數(shù),重新加載頁(yè)面數(shù)據(jù)的需求,但是只改變頁(yè)面url并不會(huì)觸發(fā)組件的生命周期,這就需要用其他方法來(lái)實(shí)現(xiàn)了。
一、this.$router.go(0) 和 location.reload()
相當(dāng)于刷新瀏覽器,會(huì)重新加載頁(yè)面資源,體驗(yàn)相當(dāng)差。
二、推薦使用:provide / inject 組合
在index.vue(與頁(yè)面結(jié)構(gòu)有關(guān))文件,聲明reload方法,控制router-view的顯示或隱藏,從而控制頁(yè)面的再次加載。
<template>
<div>
<menu-top></menu-top>
<menu-slide></menu-slide>
<div class="app-content">
<transition name="router-fades" mode="out-in">
<router-view v-if="isRefresh"></router-view>
</transition>
</div>
</div>
</template>
<script>
import MenuTop from "@/components/menu-top.vue";
import MenuSlide from "@/components/menu-slide.vue";
export default {
provide () { //注入重新加載組件方法(子頁(yè)面可以通過(guò)inject屬性接收)
return {
reload: this.reload
}
},
components: {
MenuSlide,
MenuTop
},
data () {
return {
isRefresh: true
}
},
methods: {
async reload () {
this.isRefresh= false
await this.$nextTick()
this.isRefresh= true
}
}
}
</script>原理:允許一個(gè)祖先組件向其所有子孫后代注入一個(gè)依賴,不論組件層次有多深,并在起上下游關(guān)系成立的時(shí)間里始終生效
在需要使用的子頁(yè)面通過(guò)inject屬性接收,直接調(diào)用this.reload(),只加載當(dāng)前組件,并且觸發(fā)組件的生命周期函數(shù),不會(huì)刷新整個(gè)網(wǎng)站,效果很好
<template>
<div></div>
</template>
<script>
export default {
inject: ['reload'],
methods:{
reloadFun () {
this.reload()
}
}
}
</script>到此這篇關(guān)于vue實(shí)現(xiàn)進(jìn)入某個(gè)頁(yè)面后替換地址欄路徑的文章就介紹到這了,更多相關(guān)vue替換地址欄路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VUE2.0+ElementUI2.0表格el-table循環(huán)動(dòng)態(tài)列渲染的寫法詳解
這篇文章主要介紹了VUE2.0+ElementUI2.0表格el-table循環(huán)動(dòng)態(tài)列渲染的寫法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11
ant-design-vue前端UI庫(kù),如何解決Table中時(shí)間格式化問(wèn)題
這篇文章主要介紹了ant-design-vue前端UI庫(kù),如何解決Table中時(shí)間格式化問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
詳解在vue中如何實(shí)現(xiàn)屏幕錄制與直播推流功能
屏幕錄制和直播推流是現(xiàn)代Web應(yīng)用中常用的功能,Vue作為一種流行的JavaScript框架,提供了一些工具和庫(kù),可以方便地實(shí)現(xiàn)屏幕錄制和直播推流功能,本文將介紹如何在Vue中進(jìn)行屏幕錄制和直播推流,需要的朋友可以參考下2024-01-01
解決vue 更改計(jì)算屬性后select選中值不更改的問(wèn)題
下面小編就為大家分享一篇解決vue 更改計(jì)算屬性后select選中值不更改的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
vue同時(shí)觸發(fā)兩個(gè)函數(shù)的情況
這篇文章主要介紹了vue同時(shí)觸發(fā)兩個(gè)函數(shù)的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
vue實(shí)現(xiàn)文字橫向無(wú)縫走馬燈組件效果的實(shí)例代碼
這篇文章主要介紹了vue 文字橫向無(wú)縫走馬燈組件的實(shí)現(xiàn)代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04

