微信小程序微信小程序开发微信小程序(应用号)

小程序组件传值

2018-09-28  本文已影响16人  前端来入坑

A是父组件,B是子组件

<!-- 父组件A wxml -->
<view>
  <componentB paramAtoB='{{paramAtoB}}'></componentB>
</view>

//父组件Ajson (里面不能有注释)

{
  "navigationBarTitleText": "父子传值",
  "usingComponents": {
    "componentB": "../../components/son/son"
  }
}
//父组件A js
// view/father/father.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    paramAtoB: "我是A向B传值"
  }
})
<!-- 子组件B  wxml -->
<view class="inner">
  {{paramAtoB}}
</view>
//子组件B  js
Component({
  //B在这里接收与data类似可以直接在wxml上用
  properties: {
    paramAtoB: {
      type: String,//类型
      value: 'default value'//默认值
    }
  },
  data: {
    
  }
})

//子组件B json

{
  "component": true,
  "usingComponents": {}
}

效果


image.png
<!-- 父组件A wxml -->
<view>
  <componentB paramAtoB='{{paramAtoB}}' bind:myevent="onMyEvent"></componentB>
  {{ paramBtoA }}
</view>
// view/father/father.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    paramAtoB: "我是A向B传值",
    paramBtoA: 1122
  },
  onMyEvent: function (e) {
    //通过事件接收
    this.setData({
      paramBtoA: e.detail.paramBtoA
    })
  }
})

//父组件A json (里面不能有注释)

{
  "navigationBarTitleText": "父子传值",
  "usingComponents": {
    "componentB": "../../components/son/son"
  }
}
<!-- 子组件B  wxml -->
<view class="inner">
  {{paramAtoB}}
  <button bindtap='change'>向A中传入参数</button>
</view>

(注意:子组件的方法需要写在methods:{}里面)

//子组件B  js
Component({
  //B在这里接收与data类似可以直接在wxml上用
  properties: {
    paramAtoB: {
      type: String,//类型
      value: 'default value'//默认值
    }
  },
  data: {
    
  },
  methods: {
    //触发change事件向A传值
    change: function () {
      this.triggerEvent('myevent', { paramBtoA: "666传值成功" });
    }
  }
})

//子组件B json

{
  "component": true,
  "usingComponents": {}
}

原先效果


image.png

点击按钮之后


image.png
上一篇下一篇

猜你喜欢

热点阅读