uniapp的B页面返回到A页面,A页面刷新引入组件的内容

在这里插入图片描述






uniapp的B页面返回到A页面,A页面刷新引入组件的内容




前言

最近做项目有这么一个需求。从A页面路由到B页面添加数据,添加成功就返回A页面,发现A页面引入的组件没刷新数据。



解决

A页面源码
A页面主要是在onShow生命周期中调用子组件方法,从而达到刷新数据的效果。

<template>
	<view class="main">
		<store ref="store"></store>
	</view>
</template>

<script>
	import store from '../../components/store.vue'

	export default {
		data() {
			return {
			
			}
		},
		components: {
			store
		},
		onShow() {
			this.loadData();
		},
		methods: {
			loadData(){
				var that = this;
				// 重点
				this.$nextTick(()=>{
					// 调用子组件的刷新数据方法
				    that.$refs.store.overloadData();
				})
			},
		}
	}
</script>

<style lang="scss">
	<!---->
</style>




子组件源码

<template>
	<view>
		<!---->
	</view>
</template>

<script>
	export default {
		data() {
			return {
				
			};
		},
		methods: {
			
			// 重新刷数据
			overloadData() {
				this.merchantStoreList.length = 0;
				// 这里引用请求后端刷新数据的方法,如this.findAllStore();
			},
		}
	};
</script>

<style lang="scss">
	
</style>



缺点

直接进入A页面时子组件会连续请求两次数据,渲染页面时一次和onShow声明周期一次。具体的可以根据个人来优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值