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


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 相关文章推荐
利用jQuery的deferred对象实现异步按顺序加载JS文件
Mar 17 Javascript
JavaScript简单实现鼠标拖动选择功能
Mar 06 Javascript
浅析javascript中function 的 length 属性
May 27 Javascript
js自定义鼠标右键的实现原理及源码
Jun 23 Javascript
JQuery跳出each循环的方法
Apr 16 Javascript
Bootstrap中data-target 到底是什么
Feb 14 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
Feb 18 Javascript
关于Promise 异步编程的实例讲解
Sep 01 Javascript
vue配置请求本地json数据的方法
Apr 11 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
优雅的使用javascript递归画一棵结构树示例代码
Sep 22 Javascript
微信小程序 button样式设置为图片的方法
Jun 19 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
探讨:array2xml和xml2array以及xml与array的互相转化
2013/06/24 PHP
Yii核心验证器api详解
2016/11/23 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
关于document.cookie的使用javascript
2008/04/11 Javascript
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
2012/02/27 Javascript
js切换div css注意的细节
2012/12/10 Javascript
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
AngularJS入门教程之数据绑定原理详解
2016/11/02 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
vue+element实现批量删除功能的示例
2018/02/28 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
mpvue+vant app搭建微信小程序的方法步骤
2019/02/11 Javascript
Vue 实例事件简单示例
2019/09/19 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
python获取元素在数组中索引号的方法
2015/07/15 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
市级文明单位申报材料
2014/05/07 职场文书
英语教研活动总结
2014/07/02 职场文书
2014幼儿园教师师德师风演讲稿
2014/09/10 职场文书
董事长致辞
2015/07/29 职场文书
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
2021/04/27 Python
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android
golang使用map实现去除重复数组
2022/04/14 Golang