vue缓存的keepalive页面刷新数据的方法

  

用到这个的业务场景是这样的:

  

页面点击新建列表按钮进入到新建的页b面,填写b页面并点击b页面确认添加按钮,把这些数据带到一页面,填充到列表(数组),可以添加多条,

  

点击这条的时候进入到编辑页面,确认修改之后,回退到一个页面,一页面需要更新这条数据

  

实现这个功能的时候,由于是路由页面之间的跳,转首先想到的方案有几个:1。用sessionStorage本地存储;2。用路由参数带过去;3。用兄弟组件传值

  

由于是添加完之后如果按回退是需要退出整个页面,如果用路由跳转,会出现回退到编辑页面了,所以这个方法首先排除

  

用本地存储的时候,如果不加回退也会吧之前存的历史记录给带过来,所以最终选用了第三种方法

  

由于一页面需要缓存,所以用到了路由页面的缓存

  

router.js         {路径:“/?名字:‘一个’,组件:一元:{keepAlive:真}},      

应用程序。vue
  

        & lt; template>   & lt; div id=坝τ谩北?   & lt; keep-alive>   & lt; router-view v=" $ routemetakeepAlive "祝辞& lt;/router-view>   & lt;/keep-alive>   & lt; router-view v=" ! routemetakeepAlive美元”祝辞& lt;/router-view>   & lt;/div>   & lt;/template>   之前      

由于用到了keepalive,所以页面在再次加载的时候是不会触发而创建的是会触发激活的

  

所以接收数据,重置数据要写到激活方法下

  

页面接收

  

更改用Vue.set()方法

  

调用方法:Vue。集(目标、关键值)

  

目标:要更改的数据源(可以是对象或者数组)

  

关键:要更改的具体数据

  

值:重新赋的值

        激活(){   让这=自我在美元(“detailShow”,(数据)=祝辞{//接收   如果(! dataisEdit){//是新增还是编辑——这个是在跳转的时候带过去的——新增/编辑页面也会根据这个显示内容有所区别   thataddParamspush(数据)   thataddParams=Arrayfrom(新(thataddParamsSubsidyInfos))//为避免重复去个重   其他}{////thataddParams [thateditIndex]=数据刚开始想通过直接修改,后来发现不行,因为页面是有缓存的,显示的还是未修改之前的   Vueset (thataddParams、thateditIndex数据)//用集方法修改数据   }   })      },      

b页面提交(新增/编辑)

        提交(){   如果(! thisdetailValidate()){//这个是表单校验,如果不通过不然提交   返回;   其他}{   自我释放美元(detailShow, thisaddParams)//事件分发   这个美元routerback ();      }   }      

vue缓存的keepalive页面刷新数据的话,这个主要还是用到了vue。集(目标、关键值)方法

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

vue缓存的keepalive页面刷新数据的方法