Vue 踩坑日志 - 有关路由传参的坑
1.有关路由传参
vue中当通过params传过去的参数刷新页面以后会消失,所以可以用query传参。但此时又会出现另一个坑,刷新后数据仍在。但这是针对单个的某个变量的。
如果传入一个对象的话,刷新页面后会变成[object,object]。
那么这个问题是如何产生的呢?
探究一下,发现
router他是一个钩子,刷新页面的时候,钩子还是初始化状态,他的值是通过导航变化后,钩子拦截导航是匹配产生的。
所以说当刷新页面的时候,路由并没有发生变化,也就不存在会给变量赋值。所以,此时会出现赋值失败问题。
(以上为个人理解,如果不对请指正)
问题找出来了,怎么解决呢?
emmm.....
第一种:
首先我们要知道我们在传的这个对象中的变量是否都是我们需要的,或者这个对象中只包括很少的变量
我们就可以,用传单个变量的形式,将他们传过去。(有点废话,但确实是个好办法)
第二种:代码
if(this.$route.query instanceof Object){
var msg =sessionStorage.setItem('item',Json.Stringify(this.$route.query))
if(msg){
this.item = JSON.parse(sessionStorage.getItem('item'))
}
}else{
this.item = JSON.parse(sessionStorage.getItem('item'))
}
解释一下就是 先判断 它的格式是否为对象,如果是就将他储存到sessionStorage中,然后data中创建一个新的对象接受即可
Vue 踩坑日志 - 有关路由传参的坑的更多相关文章
- vue链接传参与路由传参
1.链接传参: 例如:链接是:http://localhost:3333/#/index?id=001 我们要获取参数:console.log(this.$route.query.id):即可 2.路 ...
- react router @4 和 vue路由 详解(六)vue怎么通过路由传参?
完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 8.vue怎么通过路由传参? a.通配符传参数 //在定义路由的时候 { path: ' ...
- vue路由传参的三种方式以及解决vue路由传参页面刷新参数丢失问题
最近项目中涉及到跨页面传参数和后台进行数据交互,看到需求之后第一反应就是用路由传参来解决:Vue中给我们提供了三种路由传参方式,下面我们一个一个的来看一下: 方法一:params传参: this.$r ...
- vue路由传参刷新丢失
没有系统学习过vue,以前使用路由传参都是直接this.$router.push({name:'main',params:{'id': 123}})的,没有在路由定义中配置参数,如下: router: ...
- [Vue 牛刀小试]:第十三章 - Vue Router 基础使用再探(命名路由、命名视图、路由传参)
一.前言 在上一章的学习中,我们简单介绍了前端路由的概念,以及如何在 Vue 中通过使用 Vue Router 来实现我们的前端路由.但是在实际使用中,我们经常会遇到路由传参.或者一个页面是由多个组件 ...
- Vue框架(四)——路由跳转、路由传参、cookies、axios、跨域问题、element-ui模块
路由跳转 三种方式: $router.push / $router.go / router-link to this.$router.push('/course'); this.$router.pus ...
- Vue路由传参的几种方式
原 Vue路由传参的几种方式 2018年07月28日 23:52:40 广积粮缓称王 阅读数 12613 前言:顾名思义,vue路由传参是指嵌套路由时父路由向子路由传递参数,否则操作无效.传参方式 ...
- vue路由传参的几种基本方式
原文地址 this.$router.push跳转 现有如下场景,点击父组件的li元素跳转到子组件中,并携带参数,便于子组件获取数据.父组件中: <li v-for="article i ...
- vue路由传参并跳转页面
在vue项目中参数的传递可以使用本地缓存或者Vuex,那么vue能不能像小程序一样路由传参呢,显然是可以的而且非常简单 方式一:query传参 //传参 go(){ that.$router.push ...
随机推荐
- 关于Python获取图片文件二进制数据的问题(获取为空)
在搭建fastdfs文件系统的时候遇到了点问题,在测试上传文件数据流的时候,需要Python来获取本地文件的二进制流 from fdfs_client.client import Fdfs_clien ...
- 【学习】008 Socket网络编程
课程目标 网络模型 TCP协议与UDP协议区别 Http协议底层实现原理. 什么是网络模型 网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机.数据传递本身没有多大的难度, ...
- 【LeetCode】按 tag 分类索引 (900题以下)
链表:https://www.cnblogs.com/zhangwanying/p/9797184.html (共34题) 数组:https://www.cnblogs.com/zhangwanyin ...
- Sass:@error
@error 和 @warn.@debug 功能是如出一辙. @mixin error($x){ @if $x < 10 { width: $x * 10px; } @else if $x == ...
- 去掉Tomcat网站地址栏的小猫图标
当我们打开CSDN等网站时,在地址栏前面就会出现红色的C状图标,如果在桌面新建此链接的快捷方式,则桌面图标也自动变为该地址栏ICO图标.在基于TOMCAT的BS应用或网站开发时,默认的图标为黄色的小猫 ...
- django的安装和初步使用
安装参考:步骤也可以参考这个 很详细 https://blog.csdn.net/zww1984774346/article/details/54408759 如果想在终端查看项目结构 需要用到tre ...
- K短路模板POJ 2449 Remmarguts' Date
Time Limit: 4000MS Memory Limit: 65536K Total Submissions:32863 Accepted: 8953 Description &qu ...
- 让VirtualBox虚拟机实现开机自动后台运行
转至:http://www.cnblogs.com/top5/archive/2012/01/19/2326234.html 测试环境:Host OS: Windows 7 x64 Guest OS: ...
- ORACLE数据库 memory_target SGA 大小
修改 memory_target 用oracle用户登录,sqlplus "/as sysdba"SQL> show parameters target; show ...
- [CSP-S模拟测试]:嘟嘟噜(约瑟夫问题)
题目描述 由于众所周知的原因,冈部一直欠真由理一串香蕉.为了封上真由理的嘴,冈部承诺只要真由理回答出这个问题,就给她买一车的香蕉:一开始有$n$个人围成一个圈,从$1$开始顺时针报数,报出$m$的人被 ...