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

vue,uni-app组件间的通讯(父子,兄弟组件间传值)

父组件给子组件传值

父组件通过v-bind绑定数据传递给子组件:

<template>
	<view>
		<son :msg="msg"></son>
	</view>
</template>

<script>
	import son from "@/components/son/son.vue"
	export default {
		data () {
			return {
				msg: 'hello,i am your father!'
			}
		},
		components: {son}
	}
</script>

子组件通过props来接受外界传递到组件内部的值:

<template>
	<view>
		{{msg}}
	</view>
</template>

<script>
	export default {
		props: ['msg']
	}
</script>

子组件给父组件传值

通过点击事件触发 sendMsg 方法,在方法中利用 $emit 触发 myEvent 将 this.status 传递给父组件

<template>
	<view>
		<button type="primary" @click="sendMsg">给父组件传值</button>
	</view>
</template>

<script>
	export default {
		data () {
			return {
				status: '想要传递给父组件的数据'
			}
		},
		methods: {
			sendMsg () {
				this.$emit('myEvent',this.status)
			}
		}
	}
</script>

父组件定义自定义事件( myEvent )并接收参数

<template>
	<view>
		<son @myEvent="getMsg"></son>
		子组件传递的值: {{res}}
	</view>
</template>
<script>
	import son from "@/components/son/son.vue"
	export default {
		data () {
			return {
				res: '' 
			}
		},
		methods: {
			getMsg (res) {
				this.res = res
			}
		},		
		components: {son}
	}
</script>

兄弟组件间传值

兄弟A组件:
通过点击事件触发 addNum 方法,触发uni.$emit 定义的 updateNum 全局事件,将数据传递出去

<template>
	<view>
		这是a组件:<button @click="addNum">修改b组件的数据</button>
	</view>
</template>

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

兄弟B组件:
在组件生命周期函数 created() ,用 uni.$on 注册一个全局事件 updateNum 触发回调函数,将A组件传递的值渲染在页面上

<template>
	<view>
		这是b组件的数据:{{num}}
	</view>
</template>

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

父组件:

	import testA from '../../components/a.vue'
	import testB from '../../components/b.vue'

相关文章:

  • python学习笔记10(用户交互程序)
  • uni-app开发微信小程序封装异步请求
  • Python语法速览与机器学习开发环境搭建
  • uni-app在小程序,h5端,安卓端的打包发布
  • HashSet和HashMap的区别
  • Vue中的使用axios封装的全局拦截器
  • [Swift] Enum 好用, Enum 可以更易用
  • VUE中的全局时间过滤器(格式化时间)
  • Android ScrollView滑动事件和子控件点击事件冲突
  • 阿里云CentOs8安装node,pm2,mysql数据库以及运行.sql文件
  • cocoapods安装完第三方类库后不生成workspace
  • 阿里云CentOs搭建node环境以及配置API接口服务器
  • 区块链之以太坊初体验——以太坊平台学习总结
  • 阿里云CentOs中Vue项目的上线(node+express+pm2)
  • iptables总结_02
  • css选择器
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • hadoop集群管理系统搭建规划说明
  • HTML-表单
  • jQuery(一)
  • js学习笔记
  • mongo索引构建
  • Netty 4.1 源代码学习:线程模型
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Python socket服务器端、客户端传送信息
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • 缓存与缓冲
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 解析带emoji和链接的聊天系统消息
  • 看域名解析域名安全对SEO的影响
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 项目管理碎碎念系列之一:干系人管理
  • 一、python与pycharm的安装
  • 正则表达式
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 关于Android全面屏虚拟导航栏的适配总结
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ​MySQL主从复制一致性检测
  • #AngularJS#$sce.trustAsResourceUrl
  • #mysql 8.0 踩坑日记
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (5)STL算法之复制
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)使用VMware vSphere标准交换机设置网络连接
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .aanva
  • .htaccess配置重写url引擎
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Core WebAPI中封装Swagger配置
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)