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


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 相关文章推荐
JavaScript中令你抓狂的魔术变量
Nov 30 Javascript
初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能
Dec 26 Javascript
关于js new Date() 出现NaN 的分析
Oct 23 Javascript
jquery的$getjson调用并获取远程的JSON字符串问题
Dec 10 Javascript
jquery 卷帘效果实现代码(不同方向)
Feb 05 Javascript
jquery插件冲突(jquery.noconflict)解决方法分享
Mar 20 Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
Aug 11 Javascript
React Native之TextInput组件解析示例
Aug 22 Javascript
详解vue-cli构建项目反向代理配置
Sep 07 Javascript
详解auto-vue-file:一个自动创建vue组件的包
Apr 26 Javascript
JavaScript实现美化滑块效果
May 17 Javascript
vue点击页面空白处实现保存功能
Nov 06 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
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
2012/05/05 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
理解PHP中的stdClass类
2014/04/18 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
2014/06/24 PHP
PHP中的self关键字详解
2019/06/23 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
30个经典的jQuery代码开发技巧
2014/12/15 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
微信小程序实战之上拉(分页加载)效果(2)
2017/04/17 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
微信小程序倒计时功能实现代码
2017/11/09 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
jQuery中DOM常见操作实例小结
2019/08/01 jQuery
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
Python中返回字典键的值的values()方法使用
2015/05/22 Python
Python3.6简单操作Mysql数据库
2017/09/12 Python
Python语言描述机器学习之Logistic回归算法
2017/12/21 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
pyecharts动态轨迹图的实现示例
2020/04/17 Python
Python 合并拼接字符串的方法
2020/07/28 Python
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
私有程序集与共享程序集有什么区别
2013/04/05 面试题
高中生学习生活的自我评价
2013/10/09 职场文书
单位介绍信范文
2014/01/18 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
2015年见习期工作总结
2014/12/12 职场文书
基于go interface{}==nil 的几种坑及原理分析
2021/04/24 Golang
pytorch--之halfTensor的使用详解
2021/05/24 Python
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android
python获取带有返回值的多线程
2022/05/02 Python