keep-alive保持页面状态及相关两种属性

一.使用keep-alive保持页面状态

我们发现页面在每次点击时都会被created,而当点击其他页面时原页面就会被destoryed。即每次重新点击原页面时,都是重新创建一个新页面
若我们希望,当跳转到其他页面后,再次返回原页面时,能够保留之前的内容,该怎么办呢?

  • 答:此时可以考虑用<keep-alive>标签保持状态,让页面不用每次都被创建

1.首先在App.vue中添加keep-alive标签
keep-alive保持页面状态及相关两种属性
2.其次在对应路由组件中,创建activated和beforeRouteLeave方法,记录当前的路径
keep-alive保持页面状态及相关两种属性
注意:activated()和deactivated()只有在该组件被保持了状态,即使用keep-alive标签时才是有效的

二.keep-alive的两个属性

  • include: 字符串或正则表达式,只有匹配的组件会被缓存
  • exclude:字符串或正则表达式,任何匹配的组件都不会被缓存
    keep-alive保持页面状态及相关两种属性