以传递一个简单的count值为例,实现父子组件的双向绑定,无论是点击父组件按钮还是子组件按钮,count值都自增

微信小程序

父传子

<component count="{{count}}"/>
properties:{count:Number
}

简单的将父组件在data中定义的属性,赋给子组件定义在properties中的属性即可
通过在父组件中设置一个按钮,使count自增,子组件的count属性也会随之自增
达到点击父组件按钮,父组件子组件count值一同加一的效果

子传父

原理是将父组件的函数传递给子组件,子组件的事件可以触发父组件函数,进而传参

<component count="{{count}}" bind:myevent="syncCount"/>

意即在父组件中定义了"syncCount"方法,子组件可以通过"myevent"作为关键字,访问到这个方法

<button bindtap="btn_click"/>
methods:{btn_click:function(){var myEventDetail = {} // detail对象,提供给事件监听函数var myEventOption = {} // 触发事件的选项this.triggerEvent('myevent', myEventDetail, myEventOption)
}
}

在子组件中放置一个按钮,在它的点击事件中,可以使用triggerEvent方法触发父组件函数,并通过myEventDetail参数来传递需要的信息,本例中,我们可以什么都不传,只需要通知父组件让count值自增即可,因为第一步已经实现了父传子,所以父组件收到消息,调用函数,count自增,子组件的count值就会同步变化
达到点击子组件按钮,父组件子组件count值一同加一的效果

  syncCount:function(e){this.setData({count:this.data.count+1})}

支付宝小程序

父传子

<component count="{{count}}"/>
props:{count:Number
}

简单的将父组件在data中定义的属性,赋给子组件定义在props中的属性即可
通过在父组件中设置一个按钮,使count自增,子组件的count属性也会随之自增
达到点击父组件按钮,父组件子组件count值一同加一的效果

子传父

原理是将父组件的函数传递给子组件,子组件的事件函数可以直接调用父组件函数,进而传参

<component count="{{count}}" onChange="countAdd"/>

意即在父组件中定义了"countAdd"方法,传递给了子组件props中的onChange,注意这里的命名必须使用on开头,不然会被识别为字符串

props: {count:Number,onChange:(data)=>console.log(data)},

如此定义是为了,如果父组件不传onChange,onChange有个默认的方法

<button onTap="btn_click" /button>
 methods: {btn_click:function(){this.props.onChange();}}

在子组件中放置一个按钮,在它的点击事件中调用父组件的countAdd方法(与onChange绑定了),这里我们可以不传参,在父组件中使count值自增,因为之前已经实现了父传子,子组件的count值就也会随之自增(如果需要传参,给countAdd方法加形参即可)
达到点击子组件按钮,父组件子组件count值一同加一的效果

 countAdd(){this.setData({count:this.data.count+1})}

微信和支付宝小程序在data和props方面的区别

微信小程序的data和properties是同一个对象,也就是说
我们既可以通过父组件的值变化来操作properties中的属性,也可以通过子组件的setData方法更改properties中的属性
而支付宝小程序的data和props是两个不同的对象,props只能由父组件来更改,无法在子组件中进行操作
因此,在微信小程序中实现count值的双向绑定,在实现子传父时,也可以这么写

methods:{btn_click:function(){this.setData({count:this.properties.count+1});this.triggerEvent("myevent",{value:this.properties.count});
}
}

我们先让子组件的count值加一,再将这个值回传给父组件,直接赋值给父组件的count
之前的方法是子组件通知父组件,父组件更改值,子组件随之改变
这种方式是子组件先更改自己,再直接将父组件的值更改

  syncCount:function(e){this.setData({count:e.detail.value})}

在写支付宝小程序时是无法使用这种方式的,因为子组件不允许修改props中的属性

比较推荐的做法也是不要让直接让子组件修改properties中的属性,交给父组件来做更好,这里只是记录一下

小程序父子组件间传值(微信/支付宝/钉钉)相关推荐

  1. 微信小程序 父子组件通讯/传值

    3种方式: 属性绑定:父组件 向 --> 子组件的指定属性设置数据.仅能设置json兼容的数据,如:基本数据类型.object等 (不能传递复杂属性的数据,如:方法等). 事件绑定:子组件 向 ...

  2. 微信小程序父子组件传值问题

    微信小程序父子组件传值问题 把自己碰到的问题或者学到的东西在这里总结,慢慢积累 在父子组件传值时,我发现子组件竟然拿不到父组件传过来的值. 我指的拿不到父组件的值,是指在子组件的生命周期created ...

  3. 组件间数据交互——父组件向子组件传值( props属性值类型) 子组件向父组件传值-携带参数 || 非父子组件间传值

    父组件向子组件传值 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  4. 可以实现微信小程序父子组件实时通信的插件

    小程序在组件化开发的时候可能没有达到vue那样的便捷,例如跨组件状态同步等. 这个插件可以: 1.通过代理的方式,为小程序添加了跨组件实时通信:父子组件实时同步状态功能: 2.与vue相似的Watch ...

  5. 微信小程序父子组件相互通信

    父组件传值给子组件 在父组件中引用子组件 {"component": true,"usingComponents": {"alert-tip" ...

  6. 微信小程序父子组件通信

    父子组件之间有3种通信方式 1.属性绑定 用于父组件向子组件的指定属性设置数据,只能传递普通类型的数据,无法将方法传递给子组件 2.事件绑定 用于子组件向父组件传递数据,可以传递任意数据①在父组件的j ...

  7. 【微信小程序】组件间通信与事件-获取子组件的实例对象

    1.0 前言 1.1 为何写这篇笔记 小程序官方文档只粗略给了一段代码,让笔者找不到北,故记录下易于理解的过程,以便新手了解和使用 1.2 获取子组件实例对象的作用 当引用了组件,且父组件使用了监听函 ...

  8. [淘宝小程序] 父子组件方法传递

    子向父传递方法 1.在父组件(本文中用的是一个页面)中引入子组件"myComponent" 在[pageName].json中输入 {"usingComponents&q ...

  9. 父子组件间传值,父传子,子传父

    父子组件给子组件传值 第一步:爸爸将数据递给儿子,所以我们就需要在子组件绑定父组件的数据 第二步:爸爸都已经将数据给你了,那么你就要礼貌性的伸手去拿,这时我们可以利用props去接爸爸传过来的值 第三 ...

  10. 微信小程序父子通讯、传值 triggerEvent

    一.父组件给子组件传值 分三步 1父组件定义变量: 2父组件传递变量: 3子组件接收变量: 一.定义.传递变量 Page({data: {tabsList:[{ id:1, name:'一一', is ...

最新文章

  1. linux 恢复boot分区,Linux boot分区格式化后恢复 示例
  2. eclipse配置PHP自动提示代码
  3. java自定义线程_Java自定义线程池详解
  4. 实现灵活的IT架构的三个要点
  5. C++ STL容器vector篇(四) vector容器交换, 预留空间
  6. Unity3D 使用 GL 绘制线条
  7. ueditor如何去掉末尾的p标签_织梦dedecms如何去掉域名后面的index.html
  8. 菜鸟教程php上传图片,PHP 文件上传
  9. php web服务器部署,php – 如何配置apache web服务器以部署laravel 5
  10. 到底绿茶能不能减肥瘦小肚子? - 生活至上,美容至尚!
  11. 阿里云云计算 5 阿里云的基础架构
  12. 《深入浅出通信原理》连载1-562合集
  13. ChIP-seq 数据分析1 ChIP-Seq技术2 ChIP-Seq数据分析
  14. bootstrap 表单样式
  15. KinectV2 qt opencv 实现平面测量
  16. python的注释符号有哪些_python注释符号
  17. 移动端点击a标签后默认蓝色背景如何去除
  18. html 图片自动滚动播放,CSS3实现图片滚动播放效果
  19. es 聚合查询 java api_javaAPI操作ES分组聚合
  20. 单总线(1-Wire BUS)通讯协议

热门文章

  1. python3视频教程哪个好_2020年5个经典python编程入门视频教程推荐学习
  2. 别让PPT把你绑架了
  3. linux命令不断更新
  4. java操作seaweedfs
  5. 随机森林随机回归预测_随机森林回归预测电子商务销售额
  6. ①编写一个程序,实现文件的复制。②写一个加密程序,对文件1.txt进行加密。它从输入流中读入一个密钥,并将文件密文输出。③ 编写一个应用程序,向数据文件out.dat中输入100个1000以内的随机整
  7. 人脸对齐(一)--定义及作用
  8. cad汉仪长仿宋体_cad长仿宋体下载
  9. 微信小程序保存图片到相册
  10. 三菱PLC5u与台达变频器modbus RTU通讯