antd vue 刷新保留當(dāng)前頁面路由,保留選中菜單,保留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è)置成要去的地址
刷新頁面,成功!
補(bǔ)充知識:vue根據(jù)路由刷新頁面(切換菜單刷新頁面)
刷新頁面有兩種方法:
一種是用:localtion.reload();但是這種是重新加載頁面,造成一閃一閃的效果。
一種是用provide+inject,
provider/inject:簡單的來說就是在父組件中通過provider來提供變量,然后在子組件中通過inject來注入變量。
需要注意的是這里不論子組件有多深,只要調(diào)用了inject那么就可以注入provider中的數(shù)據(jù)。而不是局限于只能從當(dāng)前父組件的prop屬性來獲取數(shù)據(jù)。
1.在app.vue頁面中加入
<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.在菜單頁面加入
inject: ['reload'], // 注入重載的功能(注入依賴) watch: { //檢測路由參數(shù)發(fā)生改變時(shí),刷新當(dāng)前頁面 調(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()方法,即可重新加載路由刷新頁面。
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)前頁面路由,保留選中菜單,保留menu選中操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- vue項(xiàng)目刷新當(dāng)前頁面的三種方法
- vue項(xiàng)目如何刷新當(dāng)前頁面的方法
- vue.js實(shí)現(xiàn)刷新當(dāng)前頁面的方法教程
- vue單頁面實(shí)現(xiàn)當(dāng)前頁面刷新或跳轉(zhuǎn)時(shí)提示保存
- Vue實(shí)現(xiàn)刷新當(dāng)前頁面的三種方式總結(jié)
- vue.js刷新當(dāng)前頁面的實(shí)例講解
- vue項(xiàng)目刷新當(dāng)前頁面的三種方式(重載當(dāng)前頁面數(shù)據(jù))
- Vue實(shí)現(xiàn)當(dāng)前頁面刷新的4種方法舉例
相關(guān)文章
使用Element-UI的NavMenu如何隱藏自帶的小箭頭
這篇文章主要介紹了使用Element-UI的NavMenu如何隱藏自帶的小箭頭問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07Vue+webpack項(xiàng)目基礎(chǔ)配置教程
這篇文章主要介紹了Vue+webpack項(xiàng)目基礎(chǔ)配置教程,需要的朋友可以參考下2018-02-02vue實(shí)現(xiàn)簡易選項(xiàng)卡功能
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)簡易選項(xiàng)卡功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06Vue3通過hooks方式封裝節(jié)流和防抖的代碼詳解
vue3 中的 hooks 就是函數(shù)的一種寫法,就是將文件的一些單獨(dú)功能的js代碼進(jìn)行抽離出來,放到單獨(dú)的js文件中,或者說是一些可以復(fù)用的公共方法/功能,本文給大家介紹了Vue3通過hooks方式封裝節(jié)流和防抖,需要的朋友可以參考下2024-10-10vue 實(shí)現(xiàn) tomato timer(蕃茄鐘)實(shí)例講解
下面小編就為大家?guī)硪黄獀ue 實(shí)現(xiàn) tomato timer(蕃茄鐘)實(shí)例講解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07vue init webpack 項(xiàng)目初始化失敗問題
在使用Vue-cli搭建項(xiàng)目時(shí),可能會遇到依賴無法顯示版本號的問題,首先檢查環(huán)境變量配置是否正確,確保vue-init的安裝目錄被正確添加到path中,若問題仍未解決,嘗試卸載并重新安裝webpack,確保在正確的項(xiàng)目路徑下執(zhí)行npm install和npm run dev命令2024-09-09vue動(dòng)畫之點(diǎn)擊按鈕往上漸漸顯示出來的實(shí)例
今天小編就為大家分享一篇vue動(dòng)畫之點(diǎn)擊按鈕往上漸漸顯示出來的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09