当前位置:   article > 正文

小程序组件间传值

小程序组件间传值

1、属性绑定(Props):
父组件通过在子组件标签上设置属性的方式向子组件传值。
子组件通过properties定义接收的属性
父组件:
wxml

   <child-component title="{{parentData}}"></child-component>
  • 1

子组件:
js

   properties: {
     title: {
       type: String,
       value: ''
     }
   }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2、事件(event):
子组件触发事件,将数据通过事件参数传递给父组件
子组件
wxml

<view wx:if="{{outOperateStatus}}" class="single-confirm-btn {{!isStock ? 'disabled' : ''}}" bindtap="customEvent">
      确定
    </view>
  • 1
  • 2
  • 3

js

methods:{
	customEvent(){
		this.triggerEvent('customEvent', {data: 'someData'});
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5

父组件:
wxml

   <child-component bind:customEvent="handleChildEvent"></child-component>
   //bind:可以省略不写,是冒泡事件
   //阻止冒泡(捕获事件):catch:customEvent=
  • 1
  • 2
  • 3

js

   methods: {
     handleChildEvent(e) {
       const dataFromChild = e.detail.data;
     }
   }
  • 1
  • 2
  • 3
  • 4
  • 5

3、全局变量
利用小程序的全局对象app.globalData进行跨页面或跨组件的数据共享
app.js:

   App({
     globalData: {
       sharedData: 'Hello'
     }
   });
  • 1
  • 2
  • 3
  • 4
  • 5

获取:

   const app = getApp();
   const sharedData = app.globalData.sharedData;
  • 1
  • 2

4、URL参数:
通过页面跳转时在URL中携带参数

   wx.navigateTo({
     url: '/path/to/page?param=value'
   });
  • 1
  • 2
  • 3

接收:

   onLoad(options) {
     const param = options.param;
   }
  • 1
  • 2
  • 3

5、setData与this.selectComponent
在某些场景下,可以通过this.selectComponent获取子组件实例,直接调用子组件的方法或修改子组件的data
父组件:

   const child = this.selectComponent('#child-component');
   child.updateData(someData);
  • 1
  • 2

子组件:

   methods: {
     updateData(newData) {
       this.setData({
         data: newData
       });
     }
   }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/573452
推荐阅读
相关标签
  

闽ICP备14008679号