详解微信小程序中组件通讯


Posted in Javascript onOctober 30, 2018

这篇主要讲组件通讯

(1)父组件向子组件传值:

<header title='{{title}}' bind:fn='fn' id='header'></header>

通过title='{{title}}'传向子组件向子组件传递参数

子组件接收参数:

Component({
 properties: {
  title: {    // 属性名 type: Number, // 类型(必填)
   type: String,//目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)
  },
  fn: {   
   type: Function,
  },
 },
 data: {
    
 },
 methods: {
  // 子组件调用父组件方法
  childFn() {
   console.log(this.data.title)
   this.triggerEvent("fn");
   //triggerEvent函数接受三个值:事件名称、数据、选项值 
  }
 }
})

methods使用title时 this.data.title 直接就可以获取到

通过 bind:fn='fn'传向子组件向子组件传递方法

方法同样也要在properties接收,methods里定义一个新方法, this.triggerEvent("fn") 接收父组件传递过来的方法

(2)父组件调用子组件数据及方法:

首先在父组件js onReady 生命周期中获取到组件

onReady: function () {
  //获得popup组件
  this.header= this.selectComponent("#header");
},

比如要调用子组件的一个function方法

// 调用子组件方法
 fn(){
  this.header.fn() //子组件的方法
 },

调用子组件数据的话直接 this.header.msg 就可以拿到子组件的数据

Javascript 相关文章推荐
Valerio 发布了 Mootools
Sep 23 Javascript
jQuery中width()方法用法实例
Dec 24 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
Aug 01 Javascript
jQuery中Find选择器用法示例
Sep 21 Javascript
Validform表单验证总结篇
Oct 31 Javascript
jQuery 获取select选中值及清除选中状态
Dec 13 Javascript
Js实现京东无延迟菜单效果实例(demo)
Jun 02 Javascript
javascript闭包的使用之按钮切换功能
Aug 30 Javascript
cocos2dx+lua实现橡皮擦功能
Dec 20 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
Jan 24 Javascript
JS获取本地地址及天气的方法实例小结
May 10 Javascript
vue实现登录、注册、退出、跳转等功能
Dec 23 Vue.js
vue移动端项目缓存问题实践记录
Oct 29 #Javascript
vue 使用vue-i18n做全局中英文切换的方法
Oct 29 #Javascript
Element-UI踩坑之Pagination组件的使用
Oct 29 #Javascript
vue-router权限控制(简单方式)
Oct 29 #Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
Oct 29 #Javascript
Vue项目自动转换 px 为 rem的实现方法
Oct 29 #Javascript
vue 本地服务不能被外部IP访问的完美解决方法
Oct 29 #Javascript
You might like
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
thinkPHP数据库增删改查操作方法实例详解
2016/12/06 PHP
php读取本地json文件的实例
2018/03/07 PHP
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
浅谈JSON中stringify 函数、toJosn函数和parse函数
2015/01/26 Javascript
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
2018/05/31 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
2018/12/28 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
微信小程序中为什么使用var that=this
2019/08/27 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
vue实现放大镜效果
2020/09/17 Javascript
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
python实现的防DDoS脚本
2011/02/08 Python
pygame实现简易飞机大战
2018/09/11 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
html5使用canvas画三角形
2014/12/15 HTML / CSS
美国网上书店:Barnes & Noble
2018/08/15 全球购物
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
英国名牌男装店:Standout
2021/02/17 全球购物
自动化系在校本科生求职信
2013/10/23 职场文书
我有一个梦想演讲稿
2014/05/05 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
母亲去世追悼词
2015/06/23 职场文书
SQL 聚合、分组和排序
2021/11/11 MySQL
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL