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


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 相关文章推荐
50个比较实用jQuery代码段
Sep 18 Javascript
再谈JavaScript线程
Jul 10 Javascript
jQuery实现模拟marquee标签效果
Jul 14 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
Nov 24 Javascript
Angularjs注入拦截器实现Loading效果
Dec 28 Javascript
js实时获取窗口大小变化的实例代码
Nov 18 Javascript
利用require.js与angular搭建spa应用的方法实例
Jul 19 Javascript
详细分析单线程JS执行问题
Nov 22 Javascript
原生JS实现$.param() 函数的方法
Aug 10 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
Apr 17 Javascript
微信小程序如何实现全局重新加载
Jun 05 Javascript
js利用拖放实现添加删除
Aug 27 Javascript
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
三国漫画《火凤燎原》宣布动画化PV放出 预计2020年播出
2020/03/08 国漫
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
ES6中的箭头函数实例详解
2017/04/06 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
jQuery实现获取当前鼠标位置并输出功能示例
2019/01/05 jQuery
微信小程序中data-key属性之数据传输(经验总结)
2020/08/22 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
[01:02:07]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python获取脚本所在目录的正确方法
2014/04/15 Python
对于Python装饰器使用的一些建议
2015/06/03 Python
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
Python设计模式之抽象工厂模式
2016/08/25 Python
python 计算文件的md5值实例
2017/01/13 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
python利用Tesseract识别验证码的方法示例
2019/01/21 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
python 追踪except信息方式
2020/04/25 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
特步官方商城:Xtep
2017/03/21 全球购物
MYPROTEIN澳大利亚官方网站:欧洲运动营养品牌
2019/06/26 全球购物
应征英语教师求职信
2013/11/27 职场文书
效能监察建议书
2014/05/19 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
办公室主任岗位职责范本
2015/03/31 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
Redis如何实现分布式锁
2021/08/23 Redis
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android
MySQL添加索引特点及优化问题
2022/07/23 MySQL