keep-alive使用

mac2024-06-25  54

当不停的在列表页和详情页来回切换时,当每次从详情页退回到列表页,列表组件会重新发出ajax请求,列表组件上的数据不会在短短几分钟就更新,没必要每次都发送请求。这样会降低用户体验

keep-alive用法

是vue的内置组件,能在组件切换过程中将状态保存在内存中,防止重复渲染DOM

<keep-alive> <router-view></router-view> <!-- 这里是会被缓存的组件 --> </keep-alive>

本例是使用了vue-router的,所以这里的keep-alive中放了一个router-view。 这是最简单的用法,这样会使所有在vue-router中渲染的组件,全部都将状态保留在内存。 若是缓存部分组件的状态,可以使用keep-alive的include属性。

<keep-alive include="productsList,addressList"> <router-view></router-view> </keep-alive>

只缓存productsList和addressList这2个列表组件的数据。 然后,必须在需要被缓存状态的组件的script部分,给组件添加一个name属性。

<template> </template> <script> export default{ name:"productsList", // 如果使用了keep-alive缓存该组件状态,则此组件必须有这个属性 data(){ return{} } } </script>

如果没有使用keep-alive缓存状态的组件,可以不写这个属性name:“productsList”。但是如果使用了keep-alive缓存该组件状态,则此组件必须有这个属性。并且,这个属性的值,还必须跟标签中include属性的值完全一致,包括大小写。

最新回复(0)