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


Posted in Javascript onApril 23, 2019

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

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

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

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

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

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

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

router.js

{path: '/a',name: 'a',component: a,meta: {keepAlive: true}},

App.vue

<template>
 <div id="app">
  <keep-alive>
    <router-view v-if="$routemetakeepAlive"></router-view>
  </keep-alive>
  <router-view v-if="!$routemetakeepAlive"></router-view>
 </div>
</template>

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

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

a页面接收

更改用Vue.set()方法

调用方法:Vue.set( target, key, value )

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

key:要更改的具体数据

value :重新赋的值

activated(){
    let that = this
    Self$on('detailShow',(data)=>{ // 接收
      if(!dataisEdit){ // 是新增还是编辑--这个是在跳转的时候带过去的--新增/编辑页面也会根据这个显示内容有所区别
        thataddParamspush(data)
        thataddParams = Arrayfrom(new Set(thataddParamsSubsidyInfos)) // 为避免重复去个重
      }else{



 // thataddParams[thateditIndex] = data // 刚开始想通过直接修改,后来发现不行,因为页面是有缓存的,显示的还是未修改之前的
        Vueset(thataddParams,thateditIndex,data) // 用set方法修改数据
      }
    })

  },

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

submit(){
    if(!thisdetailValidate()){ // 这个是表单校验,如果不通过不然提交
     return;
    }else{
     Self$emit('detailShow',thisaddParams) // 事件分发
     this$routerback();

    }
   }

vue 缓存的keepalive页面刷新数据的话,这个主要还是用到了Vue.set( target, key, value )方法

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

Javascript 相关文章推荐
使用JQuery和s3captche实现一个水果名字的验证
Aug 14 Javascript
javascript学习笔记(三)BOM和DOM详解
Sep 30 Javascript
JAVA四种基本排序方法实例总结
Jul 24 Javascript
JavaScript实现cookie的写入、读取、删除功能
Nov 05 Javascript
jQuery图片瀑布流的简单实现代码
Mar 15 Javascript
Webpack如何引入bootstrap的方法
Jun 17 Javascript
underscore之Collections_动力节点Java学院整理
Jul 10 Javascript
如何在 JavaScript 中更好地利用数组
Sep 27 Javascript
koa2实现登录注册功能的示例代码
Dec 03 Javascript
vue使用Google地图的实现示例代码
Dec 19 Javascript
JS div匀速移动动画与变速移动动画代码实例
Mar 26 Javascript
JavaScript 严格模式(use strict)用法实例分析
Mar 04 Javascript
Vue 指令实现按钮级别权限管理功能
Apr 23 #Javascript
Vue 之孙组件向爷组件通信的实现
Apr 23 #Javascript
Vue infinite update loop的问题解决
Apr 23 #Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
Apr 23 #Javascript
仿ElementUI实现一个Form表单的实现代码
Apr 23 #Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
Apr 23 #Javascript
vue项目首屏加载时间优化实战
Apr 23 #Javascript
You might like
php 日期和时间的处理-郑阿奇(续)
2011/07/04 PHP
php读取本地文件常用函数(fopen与file_get_contents)
2013/09/09 PHP
深入认识javascript中的eval函数
2009/11/02 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
vue加载自定义的js文件方法
2018/03/13 Javascript
vue结合Echarts实现点击高亮效果的示例
2018/03/17 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
2019/11/04 Javascript
Element PageHeader页头的使用方法
2020/07/26 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
django 发送邮件和缓存的实现代码
2018/07/18 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
django 取消csrf限制的实例
2020/03/13 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
五分钟学会HTML5的WebSocket协议
2019/11/22 HTML / CSS
最好的商品表达自己:Cafepress
2019/09/04 全球购物
爱尔兰旅游网站:ebookers.ie
2020/01/24 全球购物
2014年党务公开实施方案
2014/02/27 职场文书
软环境建设心得体会
2014/09/09 职场文书
语文教师求职信范文
2015/03/20 职场文书
行政司机岗位职责
2015/04/10 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
党员转正大会主持词
2015/07/02 职场文书
中国现代文学之经典散文三篇
2019/09/18 职场文书
《家世》读后感:看家训的力量
2019/12/30 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
2022/03/22 MySQL