原莱_ 2022-10-22 11:01 采纳率: 75%
浏览 64
已结题

页面子组件keepAlive未生效

页面子组件keepAlive未生效

<router-view v-slot="{ Component }">
        <keep-alive>
          <component
            :is="Component"
            v-if="$route.meta.keepAlive"
            :key="$route.name"
          />
        </keep-alive>
        <component
          :is="Component"
          v-if="!$route.meta.keepAlive"
          :key="$route.name"
        />
</router-view>

keepAlive为true的页面,路由index.vue

<Tabs>
    <TabPane>
      <com1/>
    </TabPane>
    <TabPane>
      <com2/>
    </TabPane>
    <TabPane>
      <com3/>
    </TabPane>
</Tabs>

问题
切换index和其他页面时有缓存,
在切换tab的时候,路由会切换成index?tab=1/2/3
在页面内切换tab的时候tab之间没有缓存
目的
切换tab的时候,各tab组件之间有缓存

  • 写回答

1条回答 默认 最新

  • Iam_楠 前端领域新星创作者 2022-10-22 16:18
    关注

    组件有渲染吗?
    v-if 这么用可能会导致组件不渲染,就是v-if不生效,带来的副作用可能导致 keep-alive没有生效;
    像下面这么写试一下

    v-if="$route.meta.keepAlive === true"
    v-else
    ```javascript
    
    
    
    

    ```

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月26日
  • 修改了问题 10月22日
  • 修改了问题 10月22日
  • 创建了问题 10月22日

悬赏问题

  • ¥15 铜与钢双金属板叠加在一起每种材料300mm长,18mm宽,4mm厚一端固定并加热至80℃,当加热端温度保持不变时另一端的稳态温度。ansys
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥15 后缀 crn 游戏文件提取资源
  • ¥15 ANSYS分析简单钎焊问题
  • ¥20 bash代码推送不上去 git fetch origin master #失败了
  • ¥15 LOL外服加入了反作弊系统,现在游戏录像rofl文件离线都无法打开
  • ¥15 在centos7安装conda
  • ¥15 c#调用yolo3 dll文件获取的数据对不上
  • ¥20 WPF 如何实现多语言,label 和cs(live Charts)中是否都能翻译