vue返回上一页并传递参数

news/2024/11/8 14:57:10/

需求:从A页面跳转到B页面,从B页面再返回至A页面,并传递参数。

1、使用sessionStorage或者localStorage

B页面返回之前将数据放置在sessionStorage里面

sessionStorage.setItem('searchKeyword', JSON.stringify({ fundname: '易方达基金', fundcode: '110011' }))
this.$router.go(-1)

返回到上一个页面之后,A页面拿到数据,再清空sessionStorage

const searchKeyword = JSON.parse(sessionStorage.getItem('searchKeyword'))
if (searchKeyword) {sessionStorage.removeItem('searchKeyword')
}

2、beforeRouteLeave和beforeRouteEnter

B页面设置beforeRouteLeave,代码如下:

beforeRouteLeave (to, from, next) {to.query.fundname = '易方达基金'to.query.fundcode = '110011'next()
}

A页面设置beforeRouteEnter,代码如下:

export default {data () {return {fundname: '',fundcode: ''}},beforeRouteEnter (to, from, next) {next(vm => {vm.fundname = to.query.fundnamevm.fundcode = to.query.fundcode})}
}

3、vuex传值

  1. store文件配置
export default new Vuex.Store({state: {searchKeyword: {}},getters: {searchKeyword: state => state.searchKeyword},mutations: {SET_KEYWORD (state, payload) {state.searchKeyword = payload}},actions: {setKeyword ({ commit }, value = {}) {commit('SET_KEYWORD', value)}}
})
  1. B页面组件使用
this.$store.dispatch('setKeyword', JSON.stringify({ fundname: '易方达基金', fundcode: '110011' }))
  1. A页面组件使用
computed: {...mapGetters({searchKeyword: 'searchKeyword'})
}

4、EventBus使用

EventBus 是一种用于实现发布-订阅模式的开源事件总线库。它可以用于在应用程序中不同组件之间进行解耦的事件通信。通过注册和发布事件,不同的组件可以订阅感兴趣的事件并在事件发生时接收通知。这种方式可以简化组件之间的通信和协作,提高代码的可维护性和可扩展性。在 Android 开发中,EventBus 经常被用来简化组件之间的通信。

用法:

  1. 在main.js中全局初始化EventBus
Vue.prototype.$EventBus = new Vue()
  1. 在B页面组件中向EventBus发送事件
this.$EventBus.$emit('searchKeyword', JSON.stringify({ fundname: '易方达基金', fundcode: '110011' }))
this.$router.go(-1)
  1. 在A页面组件中接收事件
mounted () {this.$EventBus.$on('searchKeyword', (data) => {console.log(data)})
}
  1. 移除监听
beforeDestroy () {this.$EventBus.$off('searchKeyword')
}

http://www.ppmy.cn/news/1031510.html

相关文章

JVM内存管理

文章目录 1、运行时数据区域1.1 程序计数器(线程私有)1.2 JAVA虚拟机栈(线程私有)1.3 本地方法栈1.4 Java堆(线程共享)1.5 方法区(线程共享)1.6 直接内存(非运行时数据区…

Airbnb开源数据可视化工具Visx

一、什么是visx visx 是用于 React 的富有表现力的底层可视化组件集合,结合了 d3 的强大功能来生成可视化,以及 React 更新 DOM 的诸多优势。 在 Airbnb 内部,visx 的目标是统一整个公司的可视化堆栈,在此过程中,创建了 visx 项目,从而有效的将 D3 的强大功能与 React …

[SpringBoot3]访问数据库

四、访问数据库 SpringBoot框架为SQL数据库提供了广泛的支持,既有用JdbcTemplate直接访问JDBC同时支持“object relational mapping”技术(如MyBtais、Hibernate)。SpringData独立的项目提供对多种关系型和非关系型数据库的访问支持&#xf…

大疆第二批笔试复盘

大疆笔试复盘(8-14) 笔试时候的状态和下来复盘的感觉完全不一样,笔试时脑子是懵的。 (1)输出无重复三位数 题目描述 从 { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } \left \{ 1,2,3,4,5,6,7,8,9 \right \

算法随笔:点双连通分量边双连通分量

点双连通分量 概念及性质: 在一个连通图中任选两点,如果它们之间至少存在两条“点不重复”的路径,则称为点双连通分量。在这个图上去掉任意一个点,整个图仍然连通。即点双连通分量中不存在割点。 不同的点双连通分量最多只有一…

NIDS网络威胁检测系统-Golang

使用技术: Golang Gin框架 前端三件套 演示画面: 可以部署在linux和window上 目前已在Kali2021和Window10上进行测试成功

C和C++的区别(6)字符串

目录 一,字符 二,C语言字符串 1,字符串的表示 2,输入输出 3,常用函数 三,string类 1,定义,初始化,输入输出 一,字符 类型:char 输入&…

qt实现截取屏幕

利用qt提供的函数实现截屏: QPixmap QPixmap::grabWindow(WID window, int x 0, int y 0, int width -1, int height -1) window: 表示窗口ID号 x、y: 截取屏幕的其实坐标 width:截取屏幕的宽度 -1表示当前窗口宽度 height:截取屏幕的高度 -1表示当前窗口高度 示例…