优雅实现uniapp返回上一页传参

server/2024/12/22 14:11:22/

        在移动端应用中,表单设置组件往往作为独立的页面层级存在,以实现如时间选择等复杂功能。当用户在该组件页面内选定特定时间后,如何将这一选择结果高效、有序地传递回原页面,成为一个颇具挑战性的任务。尽管可以借助Vuex进行全局状态管理以共享数据,但随着项目规模扩大和业务逻辑复杂化,直接依赖Vuex可能导致数据流难以追踪与维护。我们巧妙地运用uni.$emit事件触发机制,封装了一种方法,旨在实现选择结果的优雅传递,既保持代码的清晰性,又确保了数据流动的可控性。以下是对该方法的实现:

1、封装公共js方法:
function generateEmitKey() {return `ant${new Date().getTime()}${Math.floor(Math.random() * 150)}`;
}/*** 跳转组件/页面选择数据,并携带数据返回接收处理方法* @param {Object} data* @returns*/
function commonBackEvent(data = {}) {const { path, query = {}} = dataif (!path) throw new Error('error: path is not undefined')return new Promise((resolve, reject) => {try {const parameter = query?.parameter || generateEmitKey()uni.$off(parameter)uni.$on(parameter, data => {setTimeout(() => {resolve(data)}, 500)})router.push({path,query: {...query,parameter}});} catch (error) {reject(error)}})
}
2、原页面使用该方法进行跳转,并接收数据:
const data = await commonBackEvent({path: 'xxxxxx',query: {date,}
})
3、组件页面选择时间后返回并emit触发:
this.$Router.back();
uni.$emit(this.$Route.query.parameter, 'xxx-xxx-xxx');

http://www.ppmy.cn/server/18330.html

相关文章

MATLAB初学者入门(19)—— 均值算法

均值算法通常指的是算法中用于计算数据的平均值或中心点的方法,尤其在处理统计数据或机器学习中的聚类问题时。在聚类的上下文中,均值算法通常与K均值聚类算法(K-means clustering algorithm)相关。K均值是一种简单而广泛使用的聚…

03 后端入参校验:自定义注解实现

03 后端入参校验:自定义注解实现 一、前言二、实现1、新建Spring Boot项目2、引入依赖3、新建注解类4、新建校验器5、全局异常处理器6、编写Controller7、新建实体类8、启动并测试 一、前言 在 Java 后端开发中,为了实现入参校验,常常会使用…

Swift 中的条件语句:if 和 else

在 Swift 编程语言中,条件语句 if 和 else 是控制程序流程的重要工具。它们允许我们根据不同的条件执行不同的代码块,从而实现更灵活的程序逻辑。 if 语句 if 语句用于执行一个代码块,当指定的条件为真时。其基本语法如下: if …

OpenSceneGraph

文章目录 关于 OpenSceneGraphScreenshots - OpenMW 关于 OpenSceneGraph 官网:https://openscenegraph.github.io/openscenegraph.io/github : https://github.com/openscenegraph/OpenSceneGraphClasses : https://podsvirov.github.io/osg/reference/opensceneg…

Unity中的UI系统之UGUI

目录 概述UGUI基础——六大基础组件六大基础组件概述Canvas画布组件CanvasScaler画布缩放控制器组件必备知识恒定像素模式缩放模式恒定物理模式3D模式 Graphic Raycaster图形射线投射器EventSystem和Standalone Input ModuleRectTransform UGUI基础——三大基础控件Image图像控…

抽象的算法0.1.2版本

前言: 公式:(基础 基础 基础 ...更多的基础) 维度(影响因素) 问题 总感觉这个公式还缺了什么,将会在后续更新! 斐波那契数列 斐波那契数列(Fibonacci sequence&am…

RedisTemplate-opsForStream实现消息队列,主要演示 xgroup,xreadgroup,xpending,xack,xinfo的用法

stream 更多详细命令使用&#xff0c;可查看博文redis基于Stream类型实现消息队列&#xff0c;命令操作&#xff0c;术语概念&#xff0c;个人总结等-CSDN博客1 springboot整合redis 就不多说了 2 有用到hutool工具类&#xff0c;添加下 pom 依赖 <dependency><grou…

前端兼容 适配

一、浏览器 1、内核 浏览器内核优缺点IEtrident不安全Chromewebkit -> blink速度快&#xff0c;有兼容safriwebkit有兼容firefoxgecko功能强大 耗性能Operapresto -> blinkpresto 速度快&#xff0c;有兼容 2、浏览器兼容 1、html兼容 超链接访问过后hover样式不再出…