一般项目都会有一些逻辑需要传递值给另一个页面,那么有的时候就会出现一个问题:用户刷新了页面,诶?数据没了,参数错误。那么今天经过总结,解决了这个问题。我在最新的项目中,通过了一下几种情况进行传值:

1、通过路由传值,params或query

2、通过vuex进行状态管理 $store.state...

3、使用localStorage进行传值

那么,关于刷新页面数据消失原因有两种,一是通过路由params传值,二是vuex传值

一、通过路由params传值

路由传值有两种方式,params和query,params传值刷新页面是要消失的,然而query却不会,两者的区别就在于query会把传递的参数显示在url地址中,就像这样:/adminUser/001001001?jum=001001001211,参数过多的话url地址会变得非常难看,如果你并不在意url地址难看与否,那么你可以不使用params,而是使用query,只是切换个单词而已,这是一种方法(不是最优办法)。

还有一种方法,就是在定义路由的时候,给path设定参数,举个例子,一看就懂

export default [{
path: '/platform',
component: Layout2,
children: [{
path: '/adminCun/:jum', //这里值用:加参数的写法,jum即为参数,注意一定要用/隔开
name:'platformRecycleAdminCun',
meta:{
title:'管辖村级详情'
},
component: resolve => require(['@/view/platform/recycle/admincun'],resolve)
}]
}]

<template slot-scope="props">
<el-button type="text" @click="$router.push({name:'platformRecycleAdminCun',params:{jum:props.row.jgNum}})">
{{ props.row.jgName }}
</el-button>
</template>
这样就可以随心所欲的刷新了。

二、还有一种就是使用vuex

页面刷新store.state中的数据消失是不可避免的,那么使用localStorage来避免这个问题。发现问题的时候我就考虑到存数据在localStorage里,但是一个一个数据添加实在是太蠢了。那么就需要一个全局的方法来,将store的数据存储在localStorage里。具体的方法也是百度的很好用,也很方便。

在App.vue中,created初始化生命周期中写入以下方法

//在页面刷新时将vuex里的信息保存到localStorage里
window.addEventListener("beforeunload",()=>{
localStorage.setItem("messageStore",JSON.stringify(this.$store.state))
})

//在页面加载时读取localStorage里的状态信息
localStorage.getItem("messageStore") && this.$store.replaceState(Object.assign(this.$store.state,JSON.parse(localStorage.getItem("messageStore"))));
replaceState这个方法呢,查了api,就是替换 store 的根状态,然后通过对象赋值assign将localStorage进行赋值

beforeunload这个方法是在页面刷新时触发的,将store中的信息存入localStorage

这样就通过localStorage来避免vuex刷新数据消失的问题了。

以上是路由传参和vuex存值、传值的时候刷新页面数据消失的解决办法。
---------------------
作者:Dreamer_xr
来源:CSDN
原文:https://blog.csdn.net/xr510002594/article/details/84302734
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/zouzhongxing/p/10824408.html

[转]vue解决刷新页面vuex数据、params参数消失的问题相关推荐

  1. vue单页面跳页没有数据了_详解刷新页面vuex数据不消失和不跳转页面的解决

    先说点什么 vuex和路由拦截这一块捣鼓的有一段时间了,总算是爬出来了,特地来分享一下,首先声明没有什么基础介绍,用的是登录状态存储sessionStorage的方法!!! 进入正题 刷新 刷新相当与 ...

  2. vuex页面数据丢失_使用vuex解决刷新页面state数据消失的问题记录

    在实际的vue项目中,当我们的应用遇到多个组件之间的共享问题时,通常会用到Vuex(一个状态管理的插件,可以解决不同组件之间的数据共享和数据持久化),解决组件之间同一状态的共享问题. 因子: Vuex ...

  3. 解决刷新页面vuex数据获取不到的问题

    现象: 一进入页面可以在mounted中获取到vuex中的数据, mounted() {console.log('

  4. 小程序不刷新页面更新数据

    微信小程序不刷新页面更新数据 小程序刷新页面过程大家都懂得,特别是网络不好的时候,觉得这te,ma,就是一种折磨,如何做到不刷新页面就可以更新数据? 页面栈: 小程序的每一个页面都是一个page对象, ...

  5. Android 天气APP(十)继续优化、下拉刷新页面天气数据

    上一篇:Android 天气APP(九)细节优化.必应每日一图 修复每日一图,增加下拉刷新,滑动改变标题 新版------------------- 一.修复每日请求必应壁纸Bug 二.增加下拉刷新 ...

  6. VUE倒计时刷新页面不影响

    前端 强制性JS倒计时关闭浏览器(刷新页面也存在)也会存在的倒计时* VUE 倒计时刷新页面也存在 (持续更新) 不多BB 直接上代码 活用 localStorage 机制 (VUE+webpack版 ...

  7. vue 解决测试页面在手机滑不动问题

    vue 解决测试页面在手机滑不动问题 在写完页面的时候,会在手机上做测试,页面在苹果手机滑动没问题,在安卓手机就划不动,比如:小米,华为等等 在页面加入以下代码就可以了 overflow-x: hid ...

  8. Vue跳转页面传值(带参数)

    Vue跳转页面传值(带参数) <div><div><input type="text" placeholder="输入关键字搜索" ...

  9. vue刷新浏览器vuex数据消失

    1 下载插件 npm install --save vuex-persistedstate 2 引入 import persistedState from 'vuex-persistedstate'/ ...

  10. Nginx 部署 Vue 项目刷新页面出现404

    问题 使用Vue.框架,利用vue-route编写了一个单页路由项目,运维协助在服务器端配置nginx.部署完成后,访问首页没问题,从首页里打开二级页面没问题,但是所有的二级页面打开后,再次刷新,就会 ...

最新文章

  1. Coding-字符串
  2. tensor torch 构造_详解Pytorch中的网络构造
  3. 【HTTP 2】简介(Introduction)
  4. 把本地库推送到github远程库
  5. 对Multi-bin 技术的理解
  6. Java 基础之java运算符
  7. SSM框架笔记16:EASYUI_SSM框架西蒙购物网
  8. 【等价转换】—— 整数的变换
  9. 群辉服务器根目录新建文件夹,群晖 synology NAS 存储创建存储空间的方法
  10. exe文件打不开应该怎么办?
  11. sublime如何运行HTML?
  12. java-工具-开源
  13. 【MySQL 8.0】导入 .frm .MYD .MYI
  14. 有限覆盖定理证明其他实数完备性定理
  15. 用matlab绘制抛物线y的x平方,matlab绘制抛物线轨迹
  16. 苹果x处理器多少_精仿苹果iPhone XR手机配置介绍
  17. TensorFlow学习——入门篇
  18. UDS 14229 -1 刷写34,36,37服务,标准加Trace讲解,没理由搞不明白
  19. CTF 学习信息中转站
  20. 人们需要了解身边的大数据

热门文章

  1. 第九章(二)DAG上的动态规划
  2. rtl8188eu无线网卡驱动linux,关于rtl8188eu_Linux的驱动问题想请教一下
  3. css滚动到顶部自动固定
  4. asp 环境配置到mysql数据库增删改查
  5. go lang chrome 爬虫 (MAC 系统)
  6. Android显示shp文件,Arcgis for Android移动平台能直接打开本地的shp文件吗
  7. 2019最新 Java商城秒杀系统的设计与实战视频教程(SpringBoot版)_1-2核心技术列表...
  8. 小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_4、快速创建SpringBoot应用之自动创建web应用...
  9. MyBatis单表增删改查--接口实现
  10. Java字符串首字母大写