uniapp自定义返回事件(封装)

news/2024/5/19 12:59:47

uniapp自定义返回事件

在我们使用uniapp时,我们导航栏一般都是自定义的,比如用uview框架的导航栏,那么返回事件通常会遇到以下几个问题

  • 返回事件前需要做一些额外的处理
  • h5项目刷新页面后返回失效
  • 返回按钮点击后到指定页面

如果只是监听返回按钮,可以通过onBackPress实现,但是很多时候为了开发起来维护方便,一般都是写一个导航栏组件统一管理,于是我这边简单封装了下导航栏组件。

在这里插入图片描述

核心代码如下:

  customBack (callback) {if (this.customUrl) {uni[this.pageType]({url:this.customUrl })return}const pages = getCurrentPages()if (callback) {callback()}else  {if(pages.length === 1) {history.back()}	else {uni.navigateBack()}}}
  • (参数)customUrl 自定义跳转路径
  • (参数)pageType 跳转类型,如navigateTo、redirectTo、switchTab
  • (参数)callback 回调函数,一般用于处理一些额外逻辑
  • (参数)isOverlay 这个是我根据自己的业务需求加的,本身导航栏会占位,部分页面需要不占位,下面代码中有这个参数。
  • getCurrentPages 获取页面栈,如果h5项目刷新后,将会被清除页面栈,这个时候如果要返回上一级,则需要调用浏览器的返回方法history.back()
  • sort插槽右侧按钮

在这里插入图片描述

使用起来也方便

  <navbar title="标题"/><navbar title="标题" custom-url="/pages/meu/index" page-type="switchTab"/><navbar title="标题"><view class="navbar-right" @click="saveEvent">自定义右侧按钮</view></navbar>

完整代码如下

  <template><u-navbar :title="title" :is-back='isBack' :class="isOverlay ? 'overlay' : ''" :custom-back='customBack'><template slot="right"><slot></slot></template></u-navbar></template><script>export default {props: {title: {type: String,default: ''},isBack: { // 是否显示返回按钮type: Boolean,default: true},isOverlay: { // 是否遮罩页面上(不占位)type: Boolean,default: false},customUrl: { // 自定义跳转地址type: String,default: ''},pageType: { // 跳转方式type: String,default: 'navigateTo'}},methods: {customBack (callback) {if (this.customUrl) {uni[this.pageType]({url:this.customUrl })return}const pages = getCurrentPages()if (callback) {callback()}else  {if(pages.length === 1) {history.back()}	else {uni.navigateBack()}}}}}</script><style lang="scss" scoped>.overlay{::v-deep {.u-navbar-fixed{background: transparent !important;}.u-navbar-placeholder{display: none;}}}</style>

http://www.mrgr.cn/p/67525760

相关文章

xxe-基于Pikachu的学习

XXE漏洞 XML外部实体注入(XXE)的原理和应用_xml注入原理-CSDN博客 XXE(XML外部实体注入)漏洞分析——pikachu靶场复现_pikachu xxe-CSDN博客 原理 XML外部实体注入漏洞(XML External Entity Injection)简称XXE,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载…

vue3.4中KeepAlive的一个bug

KeepAlive可以缓存组件,在不使用include时没有任何问题,可以正常缓存。 但是一旦使用了include,如果动态组件中没有导入ref函数,缓存功能就消失了 比如 editcom.vue <template><input > </template> <script setup> import { ref } from vue </…

PHP的数组练习实验

实 验 目 的 掌握索引和关联数组&#xff0c;以及下标和元素概念&#xff1b; 掌握数组创建、初始化&#xff0c;以及元素添加、删除、修改操作&#xff1b; 掌握foreach作用、语法、执行过程和使用&#xff1b; 能应用数组输出表格和数据。 任务1&#xff1a;使用一维索引数…

已知前中后序遍历的其中两种推断出最后一种序遍历

已知二叉树后序遍历序列是 dabec,中序遍历序列是debac,它的前序遍历序列是? 方法1: 首先可以确定c为根 d为最左子树 由中序debac 假设b为第2排的子树 那么后序的后两位应该是bc yu本题题目后序不符合 由中序debac 假设e为第2排的字数 那么后序的后两位应该是ec 符合本题题目…

ME创新计划|山乡宝贝五月集体生日会 爱与温暖相伴

2024年5月1日&#xff0c;ME创新计划山乡宝贝五月集体生日会如约而至&#xff0c;在长乐坊亲子家庭生态农场&#xff0c;9 名山乡宝贝一起渡过了美好时光&#xff0c;志愿者们的精心筹备&#xff0c;让这个日子变得格外温馨而难忘。 生日会由夏惠玲老师主持&#xff0c;宝贝们手…

[每日AI0506]巴菲特谈 AI,李飞飞创业,苹果或将推出 AI 功能,ChatGPT 版搜索引擎

AI 资讯苹果或将推出 AI 功能,随 iPhone 发布 2024 年巴菲特股东大会,巴菲特将 AI 类比为核技术 巴菲特股东大会 5 万字实录 消息称 OpenAI 将于 5 月 9 日发布 ChatGPT 版搜索引擎 路透社消息,斯坦福大学 AI 领军人物李飞飞打造“空间智能”创业公司 报道地址 爆款生成式 A…

玩comfyui踩过的坑之使用ComfyUI_Custom_NODES_ALEKPET翻译组件问题

环境&#xff1a; 秋叶安装包&#xff0c;安装ComfyUI_Custom_NODES_ALEKPET组件或者直接下载网盘中的包&#xff0c;直接解压包到comfyui根目录/custom_nodes/&#xff0c;重启后&#xff0c;按指导文件操作。 注意&#xff1a;网盘指导包中有配置好的流程json文件&#xff0…

STM32——TIMER(定时器)篇

技术笔记&#xff01; 1. 定时器概述&#xff08;了解&#xff09; 1.1 软件定时器原理 使用纯软件&#xff08;CPU死等&#xff09;的方式实现定时&#xff08;延时&#xff09;功能 缺点&#xff1a;1. 延时不准确 2. CPU死等。 1.2 定时器定时原理 1.…

Ranni: Taming Text-to-Image Diffusion for Accurate Instruction Following

Ranni: Taming Text-to-Image Diffusion for Accurate Instruction Following abstract 我们引入了一个语义面板作为解码文本到图像的中间件&#xff0c;支持生成器更好地遵循指令 Related work 最近的工作还通过包含额外的条件&#xff08;如补全掩码[15&#xff0c;45]、…

程序设计题

设计一程序实现功能,处理字符串A,处理规则是:只要B字里面有的字母,不分大小写,一律从A 字符串中删掉。/*************************************************** file name:Pro_StuInfo.c* author :momolyl@126.com* date :2024/05/06* function :设计一程序实…

21 内核开发-临界区及临界区代码段判断

内核开发-临界区判断 目录 内核开发-临界区判断 1.定义 2.临界区实现机制 3.使用互斥锁实现临界区的示例 4.怎么识别是临界区代码 5.总结 1.定义 临界区是计算机系统中的一段代码&#xff0c;在任何时刻只能被一个线程执行。临界区的目的是防止多个线程同时访问共享资源…

如何将视频转换成gif表情包?超简单的方法分享

把视频中的片段截取制作成gif动画表情包是现在网络中常见的制作图片的一种方法。Gif表情包能够调节聊天中的氛围&#xff0c;快速有趣的传递信息。也因为gif动图兼容性高、体积小便于分享所以在现在的网络中非常的收欢迎。接下来&#xff0c;小编就给大家分享一下怎么把视频转g…

接口自动化测试之-requests模块详解

一、requests背景 Requests 继承了urllib2的所有特性。Requests支持HTTP连接保持和连接池&#xff0c;支持使用cookie保持会话&#xff0c;支持文件上传&#xff0c;支持自动确定响应内容的编码&#xff0c;支持国际化的 URL 和 POST 数据自动编码。 二、requests安装 利用p…

排查Java反射调用的InvocationTargetExcetion问题

在Java中通过反射调用方法时,常见的一个异常是:java.lang.reflect.InvocationTargetException,将异常信息打印到日志文件中时通常会有如下一句信息:java.lang.reflect.InvocationTargetException: null,由于在异常信息中存在"null",一开始就会非常敏感,会误以…

什么是PXE

文章目录 在局域网内搭建PXE服务器PXE 启动组件PXE的优点实验一、搭建PXE服务器&#xff0c;实现远程部署CentOS系统环境准备server关闭防火墙安装组件准备 Linux 内核、初始化镜像文件及PXE引导文件配置启用TFTP 服务配置启动DHCP服务准备CentOS 7 安装源配置启动菜单文件 Cli…

力扣每日一题114:二叉树展开为链表

题目 中等 提示 给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同…

MySQL#MySql数据库的操作

目录 一、创建数据库 二、字符集和校验规则 1.查看系统默认字符集以及校验规则 2.查看数据库支持的字符集 3.查看数据库支持的字符集校验规则 4.校验规则对数据库的影响 1.以UTF-8格式创建数据库 2.不区分大小写 3.区分大小写 4 大小写对数据库的影响 三、操纵数据…

【MySQL数据库】详解数据库审核工具SQLE的部署及接口调用

SQLE部署及使用 1. 部署SQLE SQLE相信大家都不陌生吧&#xff0c;它是一款开源&#xff0c;支持多场景审核&#xff0c;支持标准化上线流程&#xff0c;原生支持 MySQL 审核且数据库类型可扩展的 SQL审核工具。我们可以基于此工具进行数据库SQL审核&#xff0c;提升SQL脚本质量…

Bookends for Mac:文献管理工具

Bookends for Mac&#xff0c;一款专为学术、研究和写作领域设计的文献管理工具&#xff0c;以其强大而高效的功能深受用户喜爱。这款软件支持多种文件格式&#xff0c;如PDF、DOC、RTF等&#xff0c;能够自动提取文献的关键信息&#xff0c;如作者、标题、出版社等&#xff0c…

删除字符串中与另一个字符串中的相同字母的自定义函数

#include <stdio.h> /********************************************************************* 函数名称: str_DestDel* 函数功能: 删除一个字符串中与另一个字符串中的相同字母并且不区分大小写* 函数参数:* @strA 需要操作的字符串* @strB 作为参考的字符串…