最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決vue中菜單再次點擊內容不刷新問題

 更新時間:2023年08月13日 08:58:00   作者:掘金歸海一刀  
當elementUI中菜單打開后,再次點擊不會刷新的問題,導致菜單再次點擊不刷新的根本原因是頁面打開后,再次打開相同的頁面是不會刷新的,這應該是框架的機制就是如此,小編整理了兩個比較不錯的解決方法,需要的朋友可以參考下

說明

今天項目經(jīng)理讓我解決一下elementUI中菜單打開后,再次點擊不會刷新的問題,看了下elementUI組件官網(wǎng),發(fā)現(xiàn)好像除了一個菜單選中事件,沒啥別的有用的。導致菜單再次點擊不刷新的根本原因是頁面打開后,再次打開相同的頁面是不會刷新的,這應該是框架的機制就是如此。網(wǎng)上又查了下,像這種this.$router.go(0)和location.reload()整個頁面刷新的方式肯定直接pass了。本著認真負責,甘于奉獻的工作態(tài)度,我毅然決然放棄了摸魚的機會,整理了兩個比較不錯的解決方法。

我們先在項目中找到菜單組件的位置,在其組件中定義下菜單選中事件handleSelect

image.png

方式一

我們在定義的handleSelect方法中,加入下面一樣代碼:

 handleSelect(){
      this.$router.push('/empty');
 }

這行代碼是選中菜單后,讓其跳轉到一個不存在的空頁面,等程序走到后面會再次跳回到我們要跳的頁面,如果沒有的話,可以根據(jù)事件參數(shù)跳轉回來:

 handleSelect(url,url_arr){
      this.$router.push('/empty');
       this.$router.push(url);
 }

保存代碼后,測試下效果,發(fā)現(xiàn)頁面同一個菜單多次點擊也會刷新頁面了。但是這種方式有個問題,由于它是跳到空頁面再跳回的,所以如果頁面渲染的稍微慢點,我們會可以發(fā)現(xiàn)url上會閃一下,當然這種問題應該沒啥影響。

方式二

在根組件APP.vue中用v-if控制router-view,實現(xiàn)一個刷新方法,具體操作如下:如果你的APP.vue中有reload方法了,你就可以在你要點擊菜單刷新的頁面調用(調用方法下面說),如果沒有,則在App.vue中加入 <router-view v-if="isRouterAlive"></router-view> ,data中不要忘記定義 isRouterAlive:true

image.png

在methods中加入reload方法

 reload(){
        this.isRouterAlive=false;
        this.$nextTick(() => {
          this.isRouterAlive=true;
        })
 },

上面準備好了,剩下的就是handleSelect中如何調用App.vue中的方法了,有兩種方式能調用到reload方法:

  1. 使用provide、inject調用首先,我們用provide在父組件提供reload方法,使其可供handleSelect使用
   provide (){
     return {
       reload:this.reload
     }
  },

然后我們在要調用的地方引入inject:['reload']

image.png

最后就可以直接調用,點擊一次菜單刷新一次就OK了。

 handleSelect(){
      this.reload();
 }
  1. 使用事件總線(Event Bus):在 Vue 中,可以創(chuàng)建一個全局的事件總線對象,將  App.vue  中的方法注冊到事件總線上,然后在 Element UI 組件中觸發(fā)相應事件,從而調用  App.vue  中的方法。在 main.js (或者其他入口文件)中創(chuàng)建事件總線:
import Vue from 'vue';
// 創(chuàng)建事件總線
Vue.prototype.$bus = new Vue();

App.vue 中注冊方法到事件總線上:

methods: {
 reload(){
        this.isRouterAlive=false;
        this.$nextTick(() => {
          this.isRouterAlive=true;
        })
 },
},
created() {
  // 注冊方法到事件總線上
  this.$bus.$on('app-reload', this.reload);
}

在handleSelect中調用下,我們點擊菜單就可以刷新啦

 handleSelect(url,url_arr){
   this.$bus.$emit('app-reload');
 }

結語

無論哪種方式,都能解決我的問題,最終選擇哪種方式都無所謂,方法一最簡單,對于我做的管理后臺來說,用的人少,有些用戶體驗有點瑕疵也沒關系;但是如果使用人數(shù)較多,客戶要求比較高的,可以使用第二種方法。

到此這篇關于解決vue中菜單再次點擊內容不刷新問題的文章就介紹到這了,更多相關vue中菜單再次點擊內容不刷新內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue父子組件的嵌套的示例代碼

    vue父子組件的嵌套的示例代碼

    本篇文章主要介紹了vue父子組件的嵌套的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Vue源碼學習defineProperty響應式數(shù)據(jù)原理實現(xiàn)

    Vue源碼學習defineProperty響應式數(shù)據(jù)原理實現(xiàn)

    這篇文章主要為大家介紹了Vue源碼學習defineProperty響應式數(shù)據(jù)原理實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 解決vue-cli項目開發(fā)運行時內存暴漲卡死電腦問題

    解決vue-cli項目開發(fā)運行時內存暴漲卡死電腦問題

    最近開發(fā)一個vue項目時遇到電腦卡死問題,突然間系統(tǒng)就非??ǎ缓罂ㄖㄖ退罊C了,鼠標也動不了了,只能冷啟動。這篇文章主要介紹了vue-cli項目開發(fā)運行時內存暴漲卡死電腦問題,需要的朋友可以參考下
    2019-10-10
  • Vue實現(xiàn)大屏獲取當前所處城市及當?shù)靥鞖獾木唧w方案

    Vue實現(xiàn)大屏獲取當前所處城市及當?shù)靥鞖獾木唧w方案

    文章介紹了如何在大屏項目中展示城市名稱和實時天氣信息,通過瀏覽器的GeolocationAPI獲取經(jīng)緯度,然后使用逆地理編碼服務獲取城市名稱,文章還提到了使用Open-Meteo獲取天氣信息,該服務免費且支持全球經(jīng)緯度的實時天氣和未來7天預報,需要的朋友可以參考下
    2026-02-02
  • Vue使用Element折疊面板Collapse如何設置默認全部展開

    Vue使用Element折疊面板Collapse如何設置默認全部展開

    這篇文章主要介紹了Vue使用Element折疊面板Collapse如何設置默認全部展開,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue.js樹形組件之刪除雙擊增加分支實例代碼

    vue.js樹形組件之刪除雙擊增加分支實例代碼

    本文通過實例代碼給大家講解vue.js樹形組件之刪除雙擊增加分支功能,非常不錯,具有參考借鑒價值,需要的的朋友參考下
    2017-02-02
  • Vue動態(tài)組件與內置組件淺析講解

    Vue動態(tài)組件與內置組件淺析講解

    閑話少說,我們進入今天的小小五分鐘學習時間,前面我們了解了vue的組件,我們本文主要是講解vue的動態(tài)組件和內置組件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Vue+SpringBoot開發(fā)V部落博客管理平臺

    Vue+SpringBoot開發(fā)V部落博客管理平臺

    V部落是一個多用戶博客管理平臺。這篇文章主要介紹了Vue+SpringBoot開發(fā)V部落博客管理平臺,需要的朋友可以參考下
    2017-12-12
  • vue.js中使用微信掃一掃解決invalid signature問題(完美解決)

    vue.js中使用微信掃一掃解決invalid signature問題(完美解決)

    這篇文章主要介紹了vue.js中使用微信掃一掃解決invalid signature問題(推薦),本文通過實例代碼給出解決方法,代碼簡單易懂非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Vue.js:使用Vue-Router 2實現(xiàn)路由功能介紹

    Vue.js:使用Vue-Router 2實現(xiàn)路由功能介紹

    本篇文章主要介紹了Vue.js:使用Vue-Router 2實現(xiàn)路由功能介紹,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02

最新評論

乐平市| 甘洛县| 盐边县| 根河市| 临沧市| 大冶市| 海口市| 故城县| 静安区| 桑植县| 汨罗市| 贵阳市| 和田县| 襄城县| 白城市| 永清县| 留坝县| 新巴尔虎右旗| 德庆县| 方城县| 淮南市| 秦皇岛市| 昌平区| 灵川县| 重庆市| 临城县| 岳西县| 西昌市| 内江市| 乌兰察布市| 龙南县| 临江市| 饶河县| 龙口市| 灵丘县| 资源县| 灵石县| 罗定市| 米脂县| 天台县| 扶绥县|