微信小程序父子组件之间通信的 3 种方式

这篇具有很好参考价值的文章主要介绍了微信小程序父子组件之间通信的 3 种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

父子组件之间通信的 3 种方式

① 属性绑定
⚫ 用于父组件向子组件的指定属性设置数据,仅能设置 JSON 兼容的数据
② 事件绑定
⚫ 用于子组件向父组件传递数据,可以传递任意数据
③ 获取组件实例
⚫ 父组件还可以通过 this.selectComponent() 获取子组件实例对象,这样就可以直接访问子组件的任意数据和方法

下面给出三种方式的代码示例:

  1. 属性绑定:

在父组件的 wxml 文件中:

<child-component data="{{dataFromParent}}"></child-component>

在父组件的 js 文件中:

Page({
  data: {
    dataFromParent: {
      name: 'Alice',
      age: 25
    }
  }
});

在子组件的 properties 中定义:

Component({
  properties: {
    data: {
      type: Object,
      value: {}
    }
  }
});
  1. 事件绑定:

在子组件的 wxml 文件中触发事件:

<button bindtap="sendDataToParent">发送数据到父组件</button>

在子组件的 js 文件中定义事件:

Component({
  methods: {
    sendDataToParent: function() {
      this.triggerEvent('sendData', {name: 'Bob', age: 30});
    }
  }
});

在父组件的 wxml 文件中绑定事件:

<child-component bind:sendData="handleReceiveDataFromChild"></child-component>

在父组件的 js 文件中定义事件处理函数:

Page({
  handleReceiveDataFromChild: function(event) {
    console.log(event.detail); // 输出:{name: "Bob", age: 30}
  }
});
  1. 获取组件实例:

在父组件的 js 文件中获取子组件实例:

Page({
  onLoad: function() {
    this.child = this.selectComponent('#child');
  },
  handleButtonClick: function() {
    console.log(this.child.data); // 输出子组件的 data 属性
    this.child.doSomething(); // 调用子组件的 doSomething 方法
  }
});

在子组件的 wxml 文件中给组件添加 id:

<view id="child"></view>

在子组件的 js 文件中定义方法:文章来源地址https://www.toymoban.com/news/detail-697658.html

Component({
  methods: {
    doSomething: function() {
      console.log('子组件执行了 doSomething 方法!');
    }
  }
});

到了这里,关于微信小程序父子组件之间通信的 3 种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序(四)--- 自定义组件详解(properties,数据监听器,纯数据字段,插槽,父子间通信,behaviors)

    目录 一、创建组件 二、引用组件 1、局部引用 2、全局引用 三、组件和页面的区别 四、组件样式隔离 1、注意点 2、修改组件的样式隔离选项  五、数据、方法、属性 1、data数据 2、methods方法 3、properties属性  4、data和properties的区别  5、使用setData修改properties的值  六、数据

    2024年01月24日
    浏览(40)
  • react 组件之间的通信(父子组件)

    React中 组件内调用其他组件不需要进行 类似于vue 声明组件(components) React 组件内调用其他组件 直接将组件导入 放置在对应的JSX 代码中 父子组件通信(传统): 1、父组件-子组件  通过属性传递 2、子组件-父组件  父组件通过将自身的函数对象传递给子组件, 子组件执行父组件

    2024年02月08日
    浏览(34)
  • 微信小程序:父子组件传值

    在微信小程序里,父组件可以向子组件传值,子组件也可以向父组件传值,不过这两种传值方式不大相同,下面先简单介绍这两种传值的区别。 两者的区别 父组件向子组件传值,使用的是   属性绑定   的方法,并且只能传递普通类型的数据 子组件向父组件传值,使用的是

    2024年02月07日
    浏览(50)
  • VUE 父子组件、兄弟组件 之间通信 最强详解

    目录 1. 父组件 调用 子组件 内参数/方法 1.1 通过 ref 调用/获取 子组件内参数/方法 2. 子组件 调用 父组件 内参数/方法 2.1 通过 emit 调用 父组件方法 2.2 通过 props 调用 父组件方法/参数 2.3 通过 this.$parent 调用 父组件方法/参数 3. 兄弟组件 通信 3.1 通过 bus 进行 兄弟组件 通信

    2024年02月05日
    浏览(39)
  • Web前端 ---- 【Vue】(组件)父子组件之间的通信一文带你了解

    目录 前言 父组件传子组件 ---- props 给要传递数据的子组件绑定要传过去的属性及属性值 在子组件中使用props配置项接收 props配置项 子组件传父组件 ---- 组件的自定义事件 子组件向父组件传递数据 通过代码来绑定自定义事件 本文将介绍在Vue中父子组件如何进行通信 这里先介

    2024年02月05日
    浏览(34)
  • vue父子组件之间的传参的几种方式

    这是最常用的一种方式。通过props选项,在父组件中传递数据给子组件。在子组件中使用props声明该属性,就可以访问到父组件传递过来的数据了。 子组件向父组件传递数据的方式。在子组件中使用emit方法触发一个自定义事件,并通过参数传递数据。在父组件中监听这个事件

    2023年04月24日
    浏览(38)
  • JavaScript 发布-订阅设计模式实现 React EventBus(相当于vue的$Bus)非父子之间通信

    参考文档:https://github1s.com/browserify/events/blob/main/events.js                  https://www.npmjs.com/package/events                  https://github.com/browserify/events                     首先先新建一个文件eventBus.tsx 然后再组件A使用=接收 然后再组件B使用=触发     安装这个events插件

    2023年04月18日
    浏览(37)
  • 【react从入门到精通】React父子组件通信方式详解(有示例)

    【分享几个国内免费可用的ChatGPT镜像】 【10几个类ChatGPT国内AI大模型】 【用《文心一言》1分钟写一篇博客简直yyds】 【用讯飞星火大模型1分钟写一个精美的PPT】 在上一篇文章《JSX详解》中我们了解了什么是jsx以及jsx的语法规则。 本文中我们将详细了解React父子组件通信方式

    2024年02月05日
    浏览(62)
  • 微信小程序页面之间传参的几种方式

    目录 前言 第一种:url传值 url传值使用详细说明 api跳转 组件跳转 第二种:将值缓存在本地,再从本地取值 第三种:全局传值(应用实例传值) 第四种:组件传值 第五种:使用通信通道(通信通道是wx.navitageTo()独有的) 第六中:使用页面栈(只对当前页面栈中存在的页面生效

    2024年04月13日
    浏览(33)
  • 微信小程序组件、web-view、h5之间交互

    目录结构 小程序 /pages/index/index.wxml /pages/index/index.js /pages/index/index.json 组件 /component/index-page/index.wxml /component/index-page/index.js /component/index-page/index.json web-view /pages/web/web.wxml /pages/web/web.js h5

    2023年04月16日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包