Vue Router 传递参数并解决刷新页面参数丢失问题
版权申诉
42 浏览量
更新于2024-08-20
收藏 17KB DOCX 举报
Vue Router 传递参数并解决刷新页面参数丢失问题
本文主要讨论了 Vue Router 传递参数的方式,并解决了刷新页面参数丢失的问题。下面是对该问题的详细分析和解决方案。
一、Vue Router 传参方式
Vue Router 提供了多种传参方式,以下是其中两种:
1. 通过 params 传参
在 Vue Router 中,可以使用 `$router.push` 方法传递参数,例如:
```javascript
this.$router.push({ name: '模块名称', params: { // 各参数 } })
```
在路由配置文件 `router.js` 中,可以使用 `params` 属性来接收参数:
```javascript
export default new Router({
routes: [
{
path: '/paramsPassingByRouter',
component: ParamsPassingByRouter,
children: [
{
path: 'paramsMode',
name: 'paramsMode',
component: ParamsMode
}
]
}
]
})
```
2. 通过 query 传参
除了使用 `params` 之外,还可以使用 `query` 来传递参数,例如:
```javascript
this.$router.push({ name: '模块名称', query: { // 各参数 } })
```
二、解决刷新页面参数丢失问题
在上面的示例代码中,我们使用 `params` 传递参数,但是当刷新页面时,参数会丢失。这是因为 `params` 是通过 URL 传递的,刷新页面时 URL 不变,但是参数会被清空。
为了解决这个问题,我们可以使用 `localStorage` 或者 `sessionStorage` 来存储参数,然后在刷新页面时,从存储中读取参数。
例如,在 `ParamsPassingByRouter.vue` 中,我们可以使用 `localStorage` 来存储参数:
```javascript
export default {
data() {
return {
testData: {
id: '20180101',
name: '张三',
aka: 'z3',
age: '18'
}
}
},
methods: {
paramsMode(data) {
localStorage.setItem('params', JSON.stringify(data))
this.$router.push({
name: 'paramsMode',
params: data
})
}
}
}
```
然后,在 `ParamsMode.vue` 中,我们可以从存储中读取参数:
```javascript
export default {
data() {
return {
testData: {}
}
},
created() {
const params = localStorage.getItem('params')
if (params) {
this.testData = JSON.parse(params)
}
}
}
```
这样,当刷新页面时,我们可以从存储中读取参数,并显示正确的数据。
Vue Router 传递参数可以使用 `params` 或 `query`,但是需要解决刷新页面参数丢失问题,可以使用 `localStorage` 或 `sessionStorage` 来存储参数。
2021-12-29 上传
2021-12-29 上传
2021-12-29 上传
2021-12-30 上传
2021-12-29 上传
2021-12-30 上传
2021-12-29 上传
2021-12-29 上传
2021-12-29 上传
mmoo_python
- 粉丝: 3542
- 资源: 1万+
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫