uni-app - 子组件中实现 onShow() 生命周期,监听页面 onShow() 实时刷新子组件内的数据(子组件中模拟页面 onShow 钩子函数,当页面显示时自动执行函数)全端兼容无 BUG

Posted 王佳斌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uni-app - 子组件中实现 onShow() 生命周期,监听页面 onShow() 实时刷新子组件内的数据(子组件中模拟页面 onShow 钩子函数,当页面显示时自动执行函数)全端兼容无 BUG相关的知识,希望对你有一定的参考价值。

前言

在 uniapp 中子组件没有 onShow() 生命周期,但您可能需要当页面显示时,就在子组件中请求接口实时刷新数据。

本文实现了 在子组件中模拟页面的 onShow() 生命周期,当页面显示的时候子组件自动执行对应的函数,

用大白话说就是,你的子组件拥有了和页面一样的 onShow,并且全端兼容 H5、小程序、App 端,


本文提供给您详细的示例代码(提供了多种方案供您选择),您几分钟就可以快速的植入到项目中,

如下图所示,当页面显示时自动执行子组件内的方法。

示例代码干净整洁,注释超级详细

解决方案 1

第一种解决方案,比较推荐。

父组件:

<template>
	<

Uni-app 微信小程序 页面组件轮询 定时刷新

踩坑前言

我的代码结构是一个页面用了个组件,具体需要轮询的东西是展示在组件里面的。开始憨憨的把onShow写在组件里面,试了半天怎么都没用。

终于想起来翻官方文档了,onShow一种是写在App.vue里面的应用生命周期,一种是页面生命周期。……页面QAQ,所以写在组件里是没有用的啊。

 

代码:

<checkPage :msg="newMsgOrNot"></checkPage>
onShow: function()
   let that = this
   setInterval(function () 
		that.haveNewMessageOrNot();
	   , 5000)
 ,

methods:
	// 判断是否有新消息
	async haveNewMessageOrNot() 
		haveNewMsgOrNot().then(res => 
			if (res.code == 200) 
				this.newMsgOrNot = res.result
			 else 
				this.$util.alertMsg(res.message)
			
		)
	

以上是关于uni-app - 子组件中实现 onShow() 生命周期,监听页面 onShow() 实时刷新子组件内的数据(子组件中模拟页面 onShow 钩子函数,当页面显示时自动执行函数)全端兼容无 BUG的主要内容,如果未能解决你的问题,请参考以下文章

Uni-app 微信小程序 页面组件轮询 定时刷新

Uni-app 微信小程序 页面组件轮询 定时刷新

Uni-app 微信小程序 页面组件轮询 定时刷新

在一组子组件中实现 useContext

在 React.js 中实现无状态子组件

uni-app中onLoad跟onShow的区别