美文网首页
小程序父子间通信

小程序父子间通信

作者: 小碗吃不了 | 来源:发表于2019-11-01 15:07 被阅读0次
  • 子页面配置

    child.json

    {
      "component": true,//设置可用
      "usingComponents": {}
    }
    

    child.wxml

    <view class='template-child'>
      <block wx:for='{{dataFromParent}}'>//接收父级数据
        <button data-id='{{item.id}}' bindtap='onTapChild'>{{item.name}}</button>
      </blcok>
    </view>
    

    child.js

    Component({
      properties: {
          dataFromParent: {
              type: Array,
              value: [],
              observer: function (newVal, oldVal, changedPath) {
              // 属性被改变时执行的函数(可选),也可以写成在methods段中定义的方法名字符串
              // 通常 newVal 就是新设置的数据, oldVal 是旧数据
          }  
        }
      },
      methods: {
        onTapChild: function(event){
        // detail对象,提供给事件监听函数
        var myEventDetail = {
          id: event.currentTarget.dataset.id
        } 
        // 触发事件的选项
        var myEventOption = {bubbles: false} 
        // 使用 triggerEvent 方法触发自定义组件事件,指定事件名、detail对象和事件选项
        this.triggerEvent('parentEvent', myEventDetail, myEventOption)
        }
      }
    })
    
    this.triggerEvent()三个参数,依次是传给父级方法名、传参、触发事件方式
    触发事件的方式有三种,默认均为false:
          bubbles 冒泡 
          capturePhase捕获 
          composed 为false事件将只能在引用组件的节点树上触发,不进入其他任何组件内部
    

    参考 https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/events.html

  • 父页面配置

    parent.json

     {
      "usingComponents": {
          "child": "../component/child/child"
      }
    }
    

    parent.wxml

    <view class='parent-wrap'>
      <view>dataFromParent是传递给子组件的数据,parentEvent是自定义组件可触发的事件名</view>
      <child dataFromParent='{{contents}}' bind:parentEvent='onParentEvent'/>
      //可以用bind:parentEvent或者bindparentEvent 
    </view>
    

    parent.js

    Page({
       data: {
            contents: [{id: 1, name: '点击第 1 个按钮'},{id: 2,name: '点击第 2 个按钮'}]
        },
    
      // 当自定义组件触发 parentEvent 事件时,调用 onParentEvent 方法
      onParentEvent: function (event) {
        // 自定义组件触发事件时提供的detail对象,用来获取子组件传递来的数据
        var id = event.detail.tag;
        console.log('子组件传递来的数据 id:', id);
      }
    })
    

相关文章

  • 小程序父子间通信

    子页面配置child.json{ "component": true,//设置可用 "usingCompone...

  • 小程序父子间通信

    1.创建组件(demo:模拟微信聊天中的表情包发送) 1.1打开微信开发者工具,创建父组件chat页面 在chat...

  • 小程序父子通信

    1、子组件 Component child.json child.wxml child.js 2、父组件 2.1...

  • 7.3.3Vue非父子间的组件通信

    非父子间的组件通信 父子链 子组件索引

  • vue组件间通信的一些实用方法(VUE2.x)

    vue组件间通信的一些实用方法(VUE2.x) 一、父子组件间通信 常用的父子组件通信方法,一般涉及props和$...

  • vue中的组件间通信

    父子组件相互通信 非父子组件间通信 关于vuex请查阅: https://www.jianshu.com/writ...

  • Vue父子间通信

    1.父组件向子组件传值 父组件: 子组件: 2.子组件向父组件传值 父组件: 子组件: 3.父组件调用子组件的方法...

  • 父子组件间通信

    父→子 传送子组件的属性是父组件传递的,动态修改父组件的值,子组件也会对应的变化 子→父父组件将自身方法作为pr...

  • React父子组件间通信的实现方式

    React学习笔记之父子组件间通信的实现:今天弄清楚了父子组件间通信是怎么实现的。父组件向子组件通信是通过向子组件...

  • 小程序组件间通信

    如何在组件中,调用父元素的方法 组件中可以往外边激活一个事件this.triggerEvent('自定义事件名')...

网友评论

      本文标题:小程序父子间通信

      本文链接:https://www.haomeiwen.com/subject/fogtbctx.html