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


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 相关文章推荐
js不是基础的基础
Dec 24 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
js点击页面其它地方将某个显示的DIV隐藏
Jul 12 Javascript
jQuery.extend()的实现方式详解及实例
Jun 29 Javascript
加随机数引入脚本不让浏览器读取缓存
Sep 04 Javascript
JavaScript中的bold()方法使用详解
Jun 08 Javascript
使用Javascript实现选择下拉菜单互移并排序
Feb 23 Javascript
Node.js+Express配置入门教程详解
May 19 Javascript
jquery获取下拉框中的循环值
Feb 08 Javascript
JavaScript定义函数_动力节点Java学院整理
Jun 27 Javascript
JavaScript中字符串的常用操作方法及特殊字符
Mar 18 Javascript
微信小程序实现发微博功能的示例代码
Jun 24 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
Function eregi is deprecated (解决方法)
2013/06/21 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
ThinkPHP路由机制简介
2016/03/23 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
javascript 动态生成私有变量访问器
2009/12/06 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
2014/06/12 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
详解webpack打包第三方类库的正确姿势
2018/10/20 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
python中import reload __import__的区别详解
2017/10/16 Python
Django开发的简易留言板案例详解
2018/12/04 Python
Python中logging实例讲解
2019/01/17 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
python实现梯度法 python最速下降法
2020/03/24 Python
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
澳大利亚儿童鞋在线:The Trybe
2019/07/16 全球购物
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
个人工作总结范文2014
2014/11/07 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
颐和园的导游词
2015/01/30 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书
python实现Thrift服务端的方法
2021/04/20 Python
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python
海弦WR-800F
2022/04/05 无线电