antd vue 刷新保留當(dāng)前頁(yè)面路由,保留選中菜單,保留menu選中操作
廢話不說,上代碼!
<a-menu theme="dark" mode="inline" :selectedKeys="[$route.path]">
<a-menu-item :key="'/home'">
<router-link to="home">
<a-icon type="user" />
<span>nav 1</span>
</router-link>
</a-menu-item>
<a-menu-item :key="'/about'">
<router-link to="about">
<a-icon type="video-camera" />
<span>nav 2</span>
</router-link>
</a-menu-item>
<a-menu-item :key="'/123123'">
<router-link to="123123">
<a-icon type="upload" />
<span>nav 3</span>
</router-link>
</a-menu-item>
</a-menu>
重點(diǎn):
1,selectedkeys要設(shè)置成$route.path地址
2,a-menu-item 的key設(shè)置成要去的地址
刷新頁(yè)面,成功!
補(bǔ)充知識(shí):vue根據(jù)路由刷新頁(yè)面(切換菜單刷新頁(yè)面)
刷新頁(yè)面有兩種方法:
一種是用:localtion.reload();但是這種是重新加載頁(yè)面,造成一閃一閃的效果。
一種是用provide+inject,
provider/inject:簡(jiǎn)單的來說就是在父組件中通過provider來提供變量,然后在子組件中通過inject來注入變量。
需要注意的是這里不論子組件有多深,只要調(diào)用了inject那么就可以注入provider中的數(shù)據(jù)。而不是局限于只能從當(dāng)前父組件的prop屬性來獲取數(shù)據(jù)。
1.在app.vue頁(yè)面中加入
<div id="app"> <router-view v-if="isRouterAlive"></router-view> </div>
provide() {
return{
reload: this.reload
}
},
data() {
return {
isRouterAlive: true
}
},
methods: {
reload () {
this.isRouterAlive = false;
this.$nextTick(function () {
this.isRouterAlive = true
})
}
},
2.在菜單頁(yè)面加入
inject: ['reload'], // 注入重載的功能(注入依賴)
watch: {
//檢測(cè)路由參數(shù)發(fā)生改變時(shí),刷新當(dāng)前頁(yè)面 調(diào)用
'$route': function(){
// this.reload();
}
},
3.注意這個(gè)@click方法,里面就是調(diào)用重新加載的方法
<el-menu-item v-if="validatenull(item[childrenKey]) && vaildRoles(item)"
:index="item[pathKey]"
@click="open(item)"
:key="item[labelKey]"
:class="{'is-active':vaildAvtive(item)}"
>
調(diào)用this.reload()方法,即可重新加載路由刷新頁(yè)面。
open(item) {
if (this.screen <= 1) this.$store.commit("SET_COLLAPSE");
this.$router.$avueRouter.group = item.group;
this.$router.push({
path: this.$router.$avueRouter.getPath({
name: item[this.labelKey],
src: item[this.pathKey]
}),
query: item.query,
});
this.reload();
},
以上這篇antd vue 刷新保留當(dāng)前頁(yè)面路由,保留選中菜單,保留menu選中操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- vue項(xiàng)目刷新當(dāng)前頁(yè)面的三種方法
- vue項(xiàng)目如何刷新當(dāng)前頁(yè)面的方法
- vue.js實(shí)現(xiàn)刷新當(dāng)前頁(yè)面的方法教程
- vue單頁(yè)面實(shí)現(xiàn)當(dāng)前頁(yè)面刷新或跳轉(zhuǎn)時(shí)提示保存
- Vue實(shí)現(xiàn)刷新當(dāng)前頁(yè)面的三種方式總結(jié)
- vue.js刷新當(dāng)前頁(yè)面的實(shí)例講解
- vue項(xiàng)目刷新當(dāng)前頁(yè)面的三種方式(重載當(dāng)前頁(yè)面數(shù)據(jù))
- Vue實(shí)現(xiàn)當(dāng)前頁(yè)面刷新的4種方法舉例
相關(guān)文章
vue短信驗(yàn)證性能優(yōu)化如何寫入localstorage中
這篇文章主要介紹了vue短信驗(yàn)證性能優(yōu)化寫入localstorage中的方法,解決這個(gè)問題需要把時(shí)間都寫到localstorage里面去,具體解決方法大家參考下本文2018-04-04
策略模式實(shí)現(xiàn) Vue 動(dòng)態(tài)表單驗(yàn)證的方法
策略模式(Strategy Pattern)又稱政策模式,其定義一系列的算法,把它們一個(gè)個(gè)封裝起來,并且使它們可以互相替換。封裝的策略算法一般是獨(dú)立的,策略模式根據(jù)輸入來調(diào)整采用哪個(gè)算法。這篇文章主要介紹了策略模式實(shí)現(xiàn) Vue 動(dòng)態(tài)表單驗(yàn)證,需要的朋友可以參考下2019-09-09
Vue?項(xiàng)目的成功發(fā)布和部署的實(shí)現(xiàn)
本文主要介紹了Vue?項(xiàng)目的成功發(fā)布和部署的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
Vue?圖片監(jiān)聽鼠標(biāo)滑輪滾動(dòng)實(shí)現(xiàn)圖片縮小放大功能(實(shí)現(xiàn)思路)
其實(shí)想要實(shí)現(xiàn)功能很簡(jiǎn)單,就是在一張圖片上監(jiān)聽鼠標(biāo)滑輪滾動(dòng)的事件,然后根據(jù)上滾還是下滾實(shí)現(xiàn)圖片的縮放,這篇文章主要介紹了Vue?實(shí)現(xiàn)圖片監(jiān)聽鼠標(biāo)滑輪滾動(dòng)實(shí)現(xiàn)圖片縮小放大功能,需要的朋友可以參考下2023-03-03
實(shí)時(shí)通信Socket?io的使用示例詳解
這篇文章主要為大家介紹了實(shí)時(shí)通信Socket?io的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11

