vue實現(xiàn)進入某個頁面后替換地址欄路徑的操作方法
vue實現(xiàn)進入某個頁面后替換地址欄路徑
需求背景:a系統(tǒng)進入b系統(tǒng)首頁("/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)前頁面 改變url參數(shù)觸發(fā)頁面生命周期
vue頁面在實際開發(fā)中,經(jīng)常會遇到改變url參數(shù),重新加載頁面數(shù)據(jù)的需求,但是只改變頁面url并不會觸發(fā)組件的生命周期,這就需要用其他方法來實現(xiàn)了。
一、this.$router.go(0) 和 location.reload()
相當(dāng)于刷新瀏覽器,會重新加載頁面資源,體驗相當(dāng)差。
二、推薦使用:provide / inject 組合
在index.vue(與頁面結(jié)構(gòu)有關(guān))文件,聲明reload方法,控制router-view的顯示或隱藏,從而控制頁面的再次加載。
<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 () { //注入重新加載組件方法(子頁面可以通過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>原理:允許一個祖先組件向其所有子孫后代注入一個依賴,不論組件層次有多深,并在起上下游關(guān)系成立的時間里始終生效
在需要使用的子頁面通過inject屬性接收,直接調(diào)用this.reload(),只加載當(dāng)前組件,并且觸發(fā)組件的生命周期函數(shù),不會刷新整個網(wǎng)站,效果很好
<template>
<div></div>
</template>
<script>
export default {
inject: ['reload'],
methods:{
reloadFun () {
this.reload()
}
}
}
</script>到此這篇關(guān)于vue實現(xiàn)進入某個頁面后替換地址欄路徑的文章就介紹到這了,更多相關(guān)vue替換地址欄路徑內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VUE2.0+ElementUI2.0表格el-table循環(huán)動態(tài)列渲染的寫法詳解
這篇文章主要介紹了VUE2.0+ElementUI2.0表格el-table循環(huán)動態(tài)列渲染的寫法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11
ant-design-vue前端UI庫,如何解決Table中時間格式化問題
這篇文章主要介紹了ant-design-vue前端UI庫,如何解決Table中時間格式化問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03

