vue.js 能否設置某個組件不被keep-alive?

我使用的是vue-router,有個組件入口文件app.vue

&&

我給router-view 設置了keep-alive,這樣每個組件都被緩存到內存中,能否設置其中某個組件不被keep-alive嗎?


1.x 不行,2.1 可以:https://gist.github.com/yyx990803/faebe22e8763f5b17572b35ed96f52fe#conditional-keep-alive


直接deactivated的時候$destroy就行了


使用了 activated 鉤子解決 vue.js 2.x 能否設置某個組件不被keep-alive 的解決方案


有結果了嗎?我也想知道


&
&
&

文檔有了,include設置要緩存的組件的name名稱。其它組件則不會被緩存。


也可以在update時判斷是否存在,存在則銷毀,再初始化


對Vue持續學習中.... 請包容某些錯誤

使用命名路由 目前我在項目中的解決方案是使用多個命名的`router-view`

比如

1.需要緩存的路由渲染到name="keepAliveRouter"的`router-view`中

2.需要動畫的路由渲染到name="transitionRuter"的`router-view`上

3.其他默認的路由渲染到未命名的默認的`router-view`中

&
&
&
&
&

&
&
&&
&

&
&&
& &
&
&&
&&
&&
& & &

// 路由
let routes = [
// 主頁
{
path: "/",
name: "home",
components: {
// 使用命名 named router view 注意路由視圖名稱不要和路由名相同
keepAliveRouter: require("@/pages/home"),
},
meta: {
requiresAuth: false,
showPageHeader: false,
showPageFooter: true,
}
},
// 運營商城市選擇
{
path: "/location",
name: "location",
components: {
// 使用命名 named router view 注意路由視圖名稱不要和路由名相同
keepAliveRouter: require("@/pages/location"),
},
meta: {
requiresAuth: false,
showPageHeader: false,
showPageFooter: false,
}
},
// 搜索頁面
{
path: "/search-purchase",
name: "search-purchase",
component: require("@/pages/search-purchase"),
meta: {
requiresAuth: true,
showPageHeader: false,
showPageFooter: false,
},
},
}


推薦閱讀:

vue.js 有哪些知名公司或項目用於實際生產環境了呢?
Knockout, Vue 和 AvalonJS 等 MVVM 框架實現中是否用到 eval 或 Function?
Vue.js如何優雅的進行form validation?
Vue 中如何使用 MutationObserver 做批量處理?

TAG:前端開發 | JavaScript | Nodejs | Vuejs |