uni-app父子通讯,跨页面跨组件通讯

Posted 曹豆芽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uni-app父子通讯,跨页面跨组件通讯相关的知识,希望对你有一定的参考价值。

今天豆芽在复习uni-app也是复习了下uni-app父子通讯,跨页面、跨组件通讯.

uni-app父子通讯

父向子通讯

//index.vue
<template>
	<view class="content">
		<testa :dataStr="dataStr"></testa>
	</view>
</template>

<script>
	import testa from '../../components/testa.vue'
	export default {
		data() {
			return {
				dataStr:'好东西'
			}
		},
		components:{
			testa
		},
		onLoad() {},
		methods: {
		}
	}
</script>

<style>
</style>

//testa.vue
<template>
	<view>
		豆芽给的{{dataStr}}
	</view>
</template>

<script>
	export default {
		data(){
			return {
				
			}
		},
		methods:{
			
		},
		props:{
			dataStr:{
				type:String
			}
		}
	}
</script>

<style>
</style>

子传父通讯

//testa.vue
<template>
	<view>
		豆芽给的{{dataStr}}
	</view>
</template>

<script>
	export default {
		data(){
			return {
				
			}
		},
		methods:{
			
		},
		created() {
			this.$emit('data','豆芽儿子给的')
		},
		props:{
			dataStr:{
				type:String
			}
		}
	}
</script>

<style>
</style>

//index.vue
<template>
	<view class="content">
		<testa :dataStr="dataStr" @data="data"></testa>
	</view>
</template>

<script>
	import testa from '../../components/testa.vue'
	export default {
		data() {
			return {
				dataStr:'好东西',
				resData:""
			}
		},
		components:{
			testa
		},
		onLoad() {},
		methods: {
			data(res){
				console.log(res)
			}
		}
	}
</script>

<style>
</style>

在这里插入图片描述

uni-app跨页面、跨组件通讯

//index.vue
<template>
	<view class="content">
		<testa></testa>
		<testb></testb>
	</view>
</template>

<script>
	import testa from '../../components/testa.vue'
	import testb from '../../components/testb.vue'
	export default {
		data() {
			return {
				userList: {}
			}
		},
		components:{
			testa,
			testb
		},
		onLoad() {},
		methods: {
			addNum() {
				uni.$emit('updateNum', 10)
			}
		}
	}
</script>

<style>
</style>

//testa.vue
<template>
	<view>
		这是a组件 :<button @click="addNum">修改b组件的数据{{num}}</button>
	</view>
</template>

<script>
	export default {
		data(){
			return {
				num:0
			}
		},
		methods:{
			addNum(){
				uni.$emit('updateNum',10)
			}
		}
	}
</script>

<style>
</style>

//testb.vue
<template>
	<view>
		b新建的数据{{num}}
	</view>
</template>

<script>
	export default {
		data(){
			return {
				num:0
			}
		},
		created() {
			uni.$on('updateNum',(num)=>{
				this.num += num;
			})
		}
	}
</script>

<style>
</style>

在这里插入图片描述
在这里插入图片描述
🙏🏿🙏🏿🙏🏿🙏🏿

以上是关于uni-app父子通讯,跨页面跨组件通讯的主要内容,如果未能解决你的问题,请参考以下文章

uni-app父子通讯,跨页面跨组件通讯

uni-app组件之间的通讯--父子/兄弟组件之间传递数据

uni-app组件之间的通讯--父子/兄弟组件之间传递数据

159微信小程序跨页面跨组件同步全局状态跨页面跨组件通讯方案,使用自制广播模块实现

159微信小程序跨页面跨组件同步全局状态跨页面跨组件通讯方案,使用自制广播模块实现

uniapp基础知识学习笔记