小程序中的组件通信简单实例

小程序中也有组件通信,那么如何实现呢?今天我们就一起来学习学习
组件通信就是:子传父,父传子,和兄弟传值

1. 首先来说说父传子

小程序中的父传子和vue中的父传子很相似

1.1首先创建一个组件:在子组件文件夹上–右建–选择【新建component】选项
在这里插入图片描述

1.2引入组件,在父组件中的json文件的usingComponents添加要使用的子组件

在这里插入图片描述
1.3父组件中引入子组件,给子组件添加属性

   <view>
		<Child title="好好学习,天天向上"/> 
	</view>

1.4在子组件的js文件的properties中接受传过来的值
格式为:

  properties: {
     title:{
       type:String,  //接受的值的类型
       value:"你是渣渣?"  //默认值,如果父组件没给子组件传值,页面上显示该数据
    
     }
  },
简易版:properties: { 
          title:String 
       }

1.5在子组件的wxml中操作

<view>
    <view>我们都是祖国的花朵</view>  //这是我页面上自己写的东西,忽略一下
    <view>
         {{title}}   //将从组件中接收的值渲染到页面
    </view>
</view>

效果如下:
在这里插入图片描述

大致就是这样啦,不是很难,大家需要顺一下思路

2.接下来说子传父

小程序的子传父和vue也很相似,接下来我们说说具体步骤
1.在子组件中触发一个事件

<view>
     <button bindtap="toFatherevent">
        点我把子组件的值传给父组件
     </button>
</view>

2.接下来在子组件的js中对应的toFatherevent上添加派发的事件和要向父级传递的数据

  methods: {
    toFatherevent(){
      this.triggerEvent('tofather','我想把我的值传给我的爸爸')
    },
  }

3.父组件监听子组件派发过来的事件和要接收的数据
格式为:bind要监听的事件名=“回调方法”

	<view>
		<Child  bindtofather="giveme" />
	</view>

4.在父组件的js中通过giveme事件获取数据

  data: {
    title:""  //定义一个属性
  },
  giveme(e){
   console.log(e.detail) //在控制台输出我们想接收的值 
   this.setData({
    title:e.detail  //更新数据
   })
  },

在页面中展示:

	<view>
		<Child  bindtofather="giveme" />
		{{title}}//渲染到视图上
	</view>

最终效果图如下:在这里插入图片描述
在这里插入图片描述

3.最后来思考兄弟传值

兄弟传值:就是前两者的结合
假如两个子组件为A1,A2,另一个父组件为B

  • 让组件A1利用子传父将值传给B,具体步骤如上
  • B接收A1传过来的值,然后利用父传子将值传给A2,具体步骤如上
  • 最后在A2中接收即可

小程序中的兄弟传值的思路和react又很相似!大家试着操作操作嗯
今天就讲到这了,大家可以思考一下兄弟如何传值哦!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小程序,父子组件之间可以通过属性绑定和事件绑定来进行通信。属性绑定用于父组件向子组件的指定属性设置数据,只能传递普通类型的数据,无法将方法传递给子组件。而事件绑定则用于子组件向父组件传递数据,可以传递任意类型的数据。具体的通信方式如下: 1. 属性绑定:父组件可以通过在wxml文件绑定属性来向子组件传递数据。在父组件的wxml文件,使用bind:属性名="方法名"的方式来绑定事件。例如:`<child-component bind:sendData="handleReceiveDataFromChild"></child-component>` \[1\]。然后在父组件的js文件,可以通过this.selectComponent('id或class选择器')来获取子组件实例,并通过设置子组件的属性来传递数据。例如:`this.child.setData({data: 'Hello'})` \[2\]。 2. 事件绑定:子组件可以通过自定义事件的形式向父组件传递数据。在父组件的js文件,定义一个函数,这个函数即将通过自定义事件的形式传递给子组件。然后在父组件的wxml文件,通过自定义事件的形式将定义的函数引用传递给子组件。在子组件的js文件,通过调用this.triggerEvent('自定义事件名称', {参数对象})来将数据发送到父组件。最后,在父组件的js文件,通过e.detail获取到子组件传递过来的数据。这种方式可以传递任意类型的数据。例如:`<child-component bind:customEvent="handleCustomEvent"></child-component>` \[3\]。 3. 获取组件实例:父组件还可以通过this.selectComponent('id或class选择器')来获取子组件的实例对象。通过获取子组件实例,父组件可以直接访问子组件的任意数据和方法。例如:`this.child = this.selectComponent('#child');` \[2\]。然后可以通过this.child来访问子组件的数据和方法。 总结起来,小程序的父子组件通信可以通过属性绑定、事件绑定和获取组件实例来实现。属性绑定用于父组件向子组件传递数据,事件绑定用于子组件向父组件传递数据,获取组件实例可以直接访问子组件的数据和方法。 #### 引用[.reference_title] - *1* *2* [微信小程序父子组件之间通信的 3 种方式](https://blog.csdn.net/qq_39321234/article/details/131361689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [微信小程序父子组件通信](https://blog.csdn.net/cc_xxo/article/details/122932576)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值