uni-app学习笔记之页面通讯

//index.vue
<template>
	<view class="content">
		<image class="logo" :src="path"></image>
		<button type="default" @click="goToChangeAvatar">ChangeAvatar</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				path: '/static/logo.png'
			}
		},
		onLoad() {
			uni.$on("changeAvatar", (e) => {
				this.path = e.path
			})
		},
		onUnload() {
			uni.$off("changeAvatar", () => {})
		},
		methods: {
			goToChangeAvatar() {
				uni.navigateTo({
					url: "../changeAvatar/changeAvatar"
				})
			}

		}
	}
</script>

<style>
	.content {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}

	.logo {
		height: 200rpx;
		width: 200rpx;
		margin-top: 200rpx;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 50rpx;
	}
</style>
//修改头像页面
<template>
	<view>
		<button type="default" @click="changeAvatar">更改头像</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
			}
		},
		methods: {
			changeAvatar(){
				uni.chooseImage({
					count:1,
					success: (e) => {
						uni.$emit("changeAvatar",{path:e.tempFilePaths[0]})
					}
				})
			}
		}
	}
</script> 

总结:
index.vue完成全局自定义事件的监听和销毁,uni. o n ( ) , u n i . on(),uni. on(),uni.off()
changeAvatar.vue触发自定义事件,uni.$emint()

uni.$on(),uni.$once(),
uni.$off()
uni.$emint()

以上4个API常用于跨页面\跨组件通讯,以上触发的事件都是全局级别的,
注意及时销毁事件监听.

		onLoad() {
			uni.$on("changeAvatar", (e) => {
				this.path = e.path
			})
		},
		onUnload() {
			uni.$off("changeAvatar", () => {})
		},
		uni.$emit("changeAvatar",{path:e.tempFilePaths[0]})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光明有我16620122910

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值