鍍金池/ 問(wèn)答/HTML/ vue 關(guān)于keep-alive的問(wèn)題

vue 關(guān)于keep-alive的問(wèn)題

我的路由是設(shè)計(jì)成兩個(gè)大路由,然后分別有子路由的,類(lèi)似于

routes:[
    {
        path:'/home',
        child:[
        {
            path:'/home/a',
        },
        {
            path:'/home/b',
        }
        ]
    },
    {
        path:'/other',
        child:[
        {
            path:'/home/c',
        },
        {
            path:'/home/d',
        }
        ]
    }
]

然后我在app.vue設(shè)置

<keep-alive>
      <router-view></router-view>
      </keep-alive>

發(fā)現(xiàn)keep-alive 不生效
但是我如果分別在兩個(gè)大路由的根組件上設(shè)置keep-alive,a頁(yè)面到b頁(yè)面,c頁(yè)面到d頁(yè)面成功緩存,但是a頁(yè)面到c頁(yè)面是緩存不成功的,有哪位道友遇到類(lèi)似情況的??

回答
編輯回答
背叛者

如樓上所說(shuō), <keep-alive>只對(duì)直屬的子組件有效,
要使a到c的緩存有效,可以參考這里的做法

簡(jiǎn)單說(shuō)就是使a,b,c,d放到同一個(gè)嵌套的子<router-view>, 給這個(gè)<router-view><keep-alive>

2017年6月10日 23:32
編輯回答
故人嘆

官方說(shuō)法:
注意,<keep-alive> 是用在其一個(gè)直屬的子組件被開(kāi)關(guān)的情形。如果你在其中有 v-for 則不會(huì)工作。

注意看下是不是有v-for

2018年7月12日 06:53