当前位置: 首页 > news >正文

uni-app切换页面刷新,返回上一页刷新(onShow钩子函数的使用)

切换页面刷新:通过onShow()便可实现

返回上一页通过uni.navigateBack({delta: 1});实现

以返回上一页刷新为例

从B页面返回上一页到A页面,在A页面写入方法refreshHandler()

//a.vue
methods: {    // 执行刷新逻辑refreshHandler() {uni.request({url: getApp().globalData.position + 'Produce/select_producting',data: {username: getApp().globalData.username},header: {"Content-Type": "application/x-www-form-urlencoded"},method: 'POST',dataType: 'json',success: res => {this.info = res.data.info;},fail(res) {console.log("查询失败")}})}
},

在A页面写入onLoad(),onShow()
onLoad():首次进入页面时执行的方法,这里直接引入refreshHandler() 可以直接查询到页面数据
onShow():进入页面执行的方法,主要切换到本页面就会执行该方法,这里也是直接引入refreshHandler()函数,可以在每次进入页面时,执行数据刷新(写入onShow(),便可解决进入页面不刷新的问题,返回上一页刷新的问题也会解决)

//刚进入页面执行的操作
onLoad() {this.refreshHandler()
},
//进入页面这行的操作
onShow() {this.refreshHandler()        
}

在B页面执行返回A页面的操作

//b.vue
methods: {is_back(e) {console.log('返回')uni.showToast({title: '成功',})setTimeout(function() {//返回上一页uni.navigateBack({delta: 1,});}, 500)},
},

核心

uni.navigateBack({delta: 1,
});

这段代码的作用是返回上一个页面,delta参数指定了返回的层数。在这里,delta为1表示返回上一层(即当前页面的前一个页面)。
注:uni.navigateBack函数是由uni-app框架提供的,用于在多页面应用中返回上一个页面。它类似于浏览器的后退按钮功能。
如果你希望执行该函数后刷新上一个页面,你可以使用下面的方式:
当成功返回上一个页面后,会调用上一个页面的onShow生命周期函数进行刷新操作。

uni.navigateBack({delta: 1,success: function () {const pages = getCurrentPages(); //获取当前页面栈const prevPage = pages[pages.length - 1]; //获取上一个页面实例对象prevPage.onLoad(); //调用上一个页面的onLoad方法}
});

总结:

方法一:直接在onShow()生命周期调用方法;
方法二:使用uni.navigateBack返回调用上一个页面的onLoad方法

http://www.lryc.cn/news/293977.html

相关文章:

  • adb 无线连接 操作Android设备
  • 春节运维不打烊:一体化运维高效保障企业IT与机房环境
  • 类银河恶魔城学习记录1-5 CollisionCheck源代码 P32
  • spring boot 使用 Kafka
  • LFU缓存(Leetcode460)
  • Vue学习笔记:计算属性
  • 深度学习本科课程 实验2 前馈神经网络
  • 【python】python爱心代码【附源码】
  • Linux---信号
  • 24种设计模式之行为型模式(下)-Java版
  • 基于微信小程序的校园水电费管理小程序的研究与实现
  • python二维高斯热力图绘制简单的思路代码
  • k8s 部署 nocas 同时部署mysql
  • GolangCI-Lint配置变更实践
  • UE中对象创建方法示例和类的理解
  • ElementUI鼠标拖动没列宽度
  • Flutter canvas 画一条会动的波浪线 进度条
  • 算法训练营day22, 回溯2
  • undefined symbol: avio_protocol_get_class, version LIBAVFORMAT_58
  • Android简单支持项目符号的EditText
  • 【axios报错异常】: Uncaught ReferenceError: axios is not defined
  • Docker基础与持续集成
  • flutter开发实战-ijkplayer视频播放器功能
  • SpringFramework实战指南(五)
  • 力扣 121. 买卖股票的最佳时机
  • 【STM32+HAL库+CubeMX】UART轮询收发、中断收发、DMA收发方法及空闲中断详解
  • 基于Java医院管理系统设计与实现(源码+部署文档)
  • PHP://filter过滤器
  • 蓝桥杯刷题day05——2023
  • 【51单片机】开发板和单片机的介绍(2)