前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序:子组件父组件数值互相传递

小程序:子组件父组件数值互相传递

作者头像
黄啊码
发布2021-09-26 10:39:16
4550
发布2021-09-26 10:39:16
举报
文章被收录于专栏:黄啊码【CSDN同名】

1.创建组件

打开微信开发者工具,创建组件,会生成四个文件:wxml,wxss,js,json

在wxml中:

<view>我是组件A</view>

对应js:

代码语言:javascript
复制
Component({

  behaviors: [],

  properties: {

  },
  data: {

  }, // 私有数据,可用于模版渲染

  // 生命周期函数,可以为函数,或一个在methods段中定义的方法名
  attached: function () { },
  moved: function () { },
  detached: function () { },

  methods: {

  }

})

在父组件json中引入子组件

代码语言:javascript
复制
{
  "usingComponents": {
    "componentA": "子组件路径"
  }
}

index.wxml

代码语言:javascript
复制
<view>
    <view>微信小程序组件传参</view>
    <componentA />
</view>

父组件向子组件传参

在A组件的wxml中写入:

代码语言:javascript
复制
<view>我是组件A</view>
<view>
   <view>子组件内容:</view>
   <componentB paramAtoB='我是A向B中传入的参数'/>
</view>

对应js:

代码语言:javascript
复制
Component({

  behaviors: [],

  properties: {
    paramAtoB:String
  },
  data: {

  }, // 私有数据,可用于模版渲染

  // 生命周期函数,可以为函数,或一个在methods段中定义的方法名
  attached: function () { },
  moved: function () { },
  detached: function () { },

  methods: {

  }

})

即在properties中定义A组件要传过来的参数类型

在B组件的wxml中写入:

<view style='border:2px solid gray;'> <view style='text-align:center;'>我是组件B</view> <view>A中传入的参数:{{paramAtoB}}</view> </view> 总结: A组件向B组件传参,实际上就是在A组件中引入B组件的时候,带上一个属性paramAtoB,并且给其赋值,然后B组件通过这个属性名称paramAtoB,获取其值

子组件向父组件传参

要让子组件给父组件传参,首先得在父组件引入子组件的时候,加个触发事件,如下:

父组件A中wxml:

代码语言:javascript
复制
<view style='padding:20px;border:2px solid red;'>
<view style='text-align:center;'>我是组件A</view>
<view>
   <view>A组件内容:</view>
   <view>B组件传入参数:{{paramBtoA}}</view>
   <componentB paramAtoB='我是A向B中传入的参数' bind:myevent="onMyEvent"/>
</view>

</view>

myevent就是绑定的触发事件

代码语言:javascript
复制
Component({

  behaviors: [],

  properties: {

  },
  data: {

  }, // 私有数据,可用于模版渲染

  // 生命周期函数,可以为函数,或一个在methods段中定义的方法名
  attached: function () { },
  moved: function () { },
  detached: function () { },

  methods: {
    onMyEvent:function(e){
      this.setData({
        paramBtoA: e.detail.paramBtoA
      })
    }
  }

})

onMyEvent就是当被子组件触发时的函数

在子组件B中wxml:

代码语言:javascript
复制
<view style='border:2px solid gray;'>
<view style='text-align:center;'>我是组件B</view>
<view>A中传入的参数:{{paramAtoB}}</view>
  <button bindtap='change'>向A中传入参数</button>
</view>

button按钮点击事件一触发,就可以传入参数进入父组件A中,在子组件B中js:

代码语言:javascript
复制
Component({

  behaviors: [],

  properties: {
    paramAtoB:String
  },
  data: {

  }, // 私有数据,可用于模版渲染

  // 生命周期函数,可以为函数,或一个在methods段中定义的方法名
  attached: function () { },
  moved: function () { },
  detached: function () { },

  methods: {
    change:function(){
      this.triggerEvent('myevent', { paramBtoA:123});//注意,这里有且只能传一个参数,且参数不能是对象
    }
  }

})
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/07/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.创建组件
  • 父组件向子组件传参
  • 子组件向父组件传参
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档