父子组件之间的三种通讯方式(小程序)

父子组件之间的三种通讯方式(小程序)


三种通讯方式

1.属性绑定
●用于父组件向 子组件的指定属性设置数据,仅能设置JSON兼容的数据
2.事件绑定
●用于子组件向父组件传递数据, 可以传递任意数据
3.获取组件实例.
●父组件还 可以通过this.selectComponent()获取子组件实例对象
●这样就可以直 接访问子组件的任意数据和方法

一、属性绑定

1.属性绑定用于实现父向子传值,而且只能传递普通类型的数据,无法将方法传递给子组件。父组件的示例代码如下:

<view>这是父组件count:{{count}}</view>
//子组件组件
<my-text1 count="{{count}}"></my-text1>
  1. 子组件在properties节点中声明对应的属性并使用。示例代码如下:
  properties: {
    count:Number
  },
//子组件
<view>这是子组件count:{{count}}</view>

二、事件绑定

事件绑定用于实现子向父传值,可以传递任何类型的数据。使用步骤如下:
在这里插入图片描述

①在父组件的js 中,定义一个函数,这个函数即将通过自定义事件的形式,传递给子组件
在这里插入图片描述
②在父组件的wxml中,通过自定义事件的形式,将步骤1中定义的函数引用,传递给子组件
在这里插入图片描述
③在子组件的js 中,通过调用this.triggerEvent(‘自定义事件名称’, { /参数对象/}),将数据发送到父组件
在这里插入图片描述
④在父组件的js 中,通过e.detail获取到子组件传递过来的数据
在这里插入图片描述

三、获取组件实例

可在父组件里调用this.selectComponent(“id或class选择器”),获取子组件的实例对象,从而直接访问子组件的任意数据和方法。调用时需要传入一个选择器
在这里插入图片描述

三、behavior

**加粗样式**
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3.0 中,父子组件之间通讯可以通过 props 和 emit 实现。 1. 父组件向子组件传递数据: 在父组件中使用子组件时,可以通过 props 将数据传递给子组件。具体实现如下: ```vue <template> <div> <child-component :message="parentMessage"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue' export default { data() { return { parentMessage: 'Hello from parent' } }, components: { ChildComponent } } </script> ``` 在子组件中,可以通过 props 接收父组件传递过来的数据。具体实现如下: ```vue <template> <div> {{ message }} </div> </template> <script> export default { props: { message: String } } </script> ``` 2. 子组件向父组件传递数据: 在子组件中,可以使用 emit 触发一个自定义事件,并向父组件传递数据。具体实现如下: ```vue <template> <div> <button @click="sendMessage">Send Message</button> </div> </template> <script> export default { data() { return { message: 'Hello from child' } }, methods: { sendMessage() { this.$emit('message', this.message) } } } </script> ``` 在父组件中使用子组件时,可以通过 v-on 监听子组件触发的自定义事件,并在事件处理函数中获取子组件传递过来的数据。具体实现如下: ```vue <template> <div> <child-component @message="handleMessage"></child-component> <div>{{ receivedMessage }}</div> </div> </template> <script> import ChildComponent from './ChildComponent.vue' export default { data() { return { receivedMessage: '' } }, components: { ChildComponent }, methods: { handleMessage(message) { this.receivedMessage = message } } } </script> ``` 以上就是 Vue 3.0 中父子组件之间通讯的实现方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值