微信小程序-父子组件之间的通信

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

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

  1. 属性绑定

    1. 用于父组件向子组件的指定属性设置数据,仅能设置JSON兼容的数据

    2. 子组件在properties节点中声明对应的属性并使用。代码:

      //子组件的properties节点
      properties:{
          count:Number
      }
      ​
      //子组件的wxml结构
      <text>子组件count的值为:{{count}}</text>
  2. 事件绑定

    1. 用于子组件向父组件传递数据,可以传递任意数据

    2. 事件绑定用于实现子向父传值,可以传递任意类型的数据,使用步骤:

      1. 在父组件的js中,定义一个函数,这个函数即将通过自定义时间的类型,传递给子组件

        //在父组件中定义syncCount方法
        //将来,这个方法会被传递给子组件,供子组件进行调用
        syncCount(){
            console.log('syncCount')
        }
      2. 在父组件的wxml中,通过自定义事件的形式,将步骤1中定义的函数引用,传递给子组件

        <!--使用bind:自定义事件名称(推荐:结构清晰)-->
        <my-test3 count="{{count}}" bind:sync='syncCount'></my-test3>
        ​
        <!--或在bind后面直接写上自定义事件名称-->
        <my-test3 count="{{count}}" bindsync='syncCount'></my-test3>
      3. 在子组件的js中,通过调用this.triggerEvent('自定义事件名称',{/参数对象/}),将数据发送到父组件

        //子组件的wxml结构
        <text>子组件中,count值为:{{count}}</text>
        <button type="primary" bindtap="addCount">+1</button>
        ​
        //子组件的js代码
        methods:{
            addCount(){
                this.setData({
                    count:this.properties.count+1
                })
                this.triggerEvent('sync',{value:this.properties.count})
            }
        }
      4. 在父组件的js中,通过e.detail获取到子组件传递过来的数据

        syncCount(e){
            this.setData({
                count:e.detail.value
            })
        }
  3. 获取组件的实例

    1. 父组件还可以通过this.selectComponent("id或者class选择器")获取子组件实例对象

    2. 这样就可以直接访问子组件的任意数据和方法文章来源地址https://www.toymoban.com/news/detail-435374.html

到了这里,关于微信小程序-父子组件之间的通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索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)
  • 微信小程序组件、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)
  • 微信小程序---组件通信---使用selectComponent获取组件实例

    子组件component wxml js 一.通过父页面增加子组件的数据值 父页面page wxml js 二.通过父页面调用子组件的方法

    2024年02月11日
    浏览(34)
  • 微信小程序this.triggerEvent()组件通信

    b组件

    2024年02月08日
    浏览(33)
  • 【微信小程序】生命周期,插槽和组件间通信

    1.1 组件全部的生命周期函数 小程序组件可用的全部生命周期如下表所示 生命周期函数 参数 描述说明 created 无 在组件实例刚刚被创建时执行 attached 无 在组件实例进入页面节点树时执行 ready 无 在组件在视图层布局完成后执行 moved 无 在组件实例被移动到节点树另一个位置时

    2024年02月11日
    浏览(36)
  • 【6 微信小程序学习 - 小程序的组件化开发,通信】

    1,在根目录创建components文件夹,自定义组件都放在此处 2,右键新建component,输入名称后悔创建四个文件 3.其中.json中的\\\"component\\\": true,表示这是一个组件 4,编写代码,和其他代码逻辑相同 1,要使用组件的父组件的json配置文件,usingComponents字段 注册 组件, 组件名称:组件路径 1 外部使用

    2024年02月13日
    浏览(30)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包