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 |