用到这个的业务场景是这样的:
页面点击新建列表按钮进入到新建的页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页面刷新数据的方法