問題描述A頁面有input框,輸入了之后,然后點擊查詢按鈕,展現的查詢結果為一個echart圖表折線圖,此時瀏覽器地址為/a,在echart圖表上有點擊事件,點擊后跳轉到B頁面,瀏覽器地址為/a/b?,F在點擊瀏覽器后退的箭頭,要回到/a頁面,并且要讓A頁面的圖表折線圖還存在。問題出現的環境背景及自己嘗試過哪些方法在router.js中A頁面的路由設置了meta的keepAlive為true相關代碼// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)//A頁面router.js中的{ path: '/a', component: A, name: 'A', meta: { keepAlive: true } },// A.vue頁面的<template><keep-alive><div ...></div></keep-alive></template>//B頁面在methods之后,beforeRouteLeave (to, from, next) {to.meta.keepAlive = truenext()},你期待的結果是什么?實際看到的錯誤信息又是什么?從B頁面回到A頁面時候,A頁面的echart表還存在
2 回答

冉冉說
TA貢獻1877條經驗 獲得超1個贊
<keep-alive v-if="route.meta.isAlive"> <router-view></router-view></keep-alive>

森欄
TA貢獻1810條經驗 獲得超5個贊
可以看看keepAlive的include、exclude屬性,比用v-if判斷是否緩存靈活許多。。
在vuex里加一個include數組,keepAlive的include屬性綁定此數組,A頁面的beforeRouteLeave里判斷to的頁面,如果to.path指向的是B頁面的path,include數組里添加B頁面組件的name,如果不是,include數組去掉B頁面組件的name
添加回答
舉報
0/150
提交
取消