微信小程序 父子组件

组件引用

全局引用

app.json中引用则该组件为全局组件,供每个页面调用该组件

页面或组件引用

在对应页面或者组件的json文件种添加

页面布局

index/index.wxml

<view>index</view>
<parent></parent>

parent/index.wxml

<view>parent</view>
<child></child>

child/index.wxml

<view>child</view>

组件通讯

父组件向子组件传值

child/index.js

子组件定义属性

Component({
  properties: {
    like: {
      type: String,
      value: "默认值"
    }
  }, 
}) 

child/index.wxml

子组件展示该属性

<view>properties.like:{{like}}</view>

效果

parent/index.wxml

父组件传值

<child like="打游戏"></child>

效果

父组件调用子组件方法

child/index.js

给子组件添加方法

Component({
  properties: {
    like: {
      type: String,
      value: "默认值"
    }
  },
  methods: {
    doLikeThings() {
      console.log(`${this.properties.like}`);
    }
  }
})

parent/index.wxml

添加一个id为music的组件

<child like="听音乐" id="music"></child>  

parent/index.js

注: 当parent为页面时,应为 wx.selectComponent

当组件生命周期执行到了ready时调用选择id为music的组件,调用组件的doLikeThings方法

Component({
  lifetimes: {
    ready() {
      this.selectComponent("#music").doLikeThings();
    }
  },
})

效果

子组件回调父组件方法

child/index.js

在子组件加载成功后向父组件发送事件

lifetimes:{
    ready(){
        this.triggerEvent("loaded", this.properties)
    }
}

parent/index.js

在父组件写一个方法接受该事件

methods: {
    childLoadedCallBack(e) {
        console.log(e);
    }
}

parent/index.wxml

进行关联绑定

<child like="写代码" bind:loaded="childLoadedCallBack"></child>

效果

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

林一怂儿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值