说一下小程序组件中如何进行通信

说一下微信小程序组件中如何进行通信

1、父组件传给子组件

a、先在父组件中的.json文件中引入子组件(相对路径)

{
  "usingComponents": {

    MyToast:"相对路径(子组件)"        

    }
}

b、在父组件写法:通过viewText="{{viewText}}"传向子组件

<MyToast viewText="{{viewText}}" bind:myEvent="OnViewText"></MyToast>

c、子组件写法:子组件是通过properties来获取父组件传过来的数据

 properties:{
            viewText:{    //属性名
              type:Number,    //类型,必填项  目前接受的类型有:                                    
                String,Number,Boolean,Object,Arrray,null(表示任意类型)
              value:''     //属性初始值(可选)如果未制定,会根据类型选择一个。
                
            }
          }

2、子组件传给父组件

a、子组件写法:

//这里的input是子组件中的某个输入框
<input type="number" bindinput="getInputnumber" value="{{codes}}"></input>
methods:{
    //这里是bindinput的方法名
     getInputnumber:function(e){
       this.triggerEvent('myEvent',e.detail.value)   //这里的myEvent是自己自定义的事件名字,需要父组件中通过他来接受,
     }
}

b、父组件写法:这里我用的是上边父组件的名字,也就是说子组件在触发这个方法后需要在父组件中手动获取就好了。

<MyToast viewText="{{viewText}}" bind:myEvent="OnViewText"></MyToast>
//这里的myEvent是子组件传递过来的自定义事件名称,OnViewText这个是父组件中自定义的事件名称

   OnViewText:function(e){
    //这立的这个e就是子组件传过来的值
    console.log(e)
}

3、定义全局变量globalData

a、在app.js文件中定义全局属性,并赋值

globalData: {//全局变量
    amap: "",
    key: "",
  }

注:在app.js文件中使用时,直接赋值就可以了。this.globalData.amap="111111";

b、在组件中使用:

getApp().globalData.amap

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值