微信小程序中子父组件相互传值
父传子:
- 父组件向子组件传递数据可以通过在子组件标签上绑定属性进行
1.在父组件的wxml文件中使用子组件,并为其绑定一个自定义属性,其中custom-data是自定义的属性名,dataFromParent是父组件中的数据
<!--父组件wxml-->
<child-component custom-data="{{dataFromParent}}"></child-component>2.在子组件的js文件中通过properties字段声明要接收的属性,这里声明了一个名为customData的属性,并指定了其类型为String,初始值为空字符串。
// 子组件js
Component({
  properties: {
    customData: {
      type: String,
      value: ''
    }
  },
  // ...
})3.在子组件的wxml文件中使用customData属性,这里直接显示customData属性对应的值。这样,在父组件中修改dataFromParent的值后,子组件中的customData属性也会随之更新。
<!-- 子组件wxml -->
<view>{{customData}}</view>子传父:
- 子组件向父组件传递数据可以通过自定义事件来实现
1.在子组件中通过triggerEvent方法触发一个自定义事件,并将数据作为参数传递给父组件,这里在点击按钮后触发了一个名为myevent的自定义事件,并将data作为参数传递给了父组件
// 子组件js
Component({
  // ...
  methods: {
    onTapBtn() {
      const data = 'hi, parent'
      this.triggerEvent('myevent', {data})
    }
  }
})2.在父组件中使用子组件时,绑定要接收事件的函数,并在该函数中获取传递过来的数据,这里在子组件上绑定了myevent事件,并指定其对应的处理函数为onMyEvent。当子组件触发自定义事件后,父组件中的onMyEvent函数会被调用,并且可以通过event.detail获取到传递过来的数据。
<!-- 父组件wxml -->
<child-component bind:myevent="onMyEvent"></child-component>// 父组件js
Page({
  onMyEvent(event) {
    console.log(event.detail.data) // 输出 hello parent
  }
})```
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号