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


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 相关文章推荐
关于 byval 与 byref 的区别分析总结
Oct 08 Javascript
javascript 写类方式之九
Jul 05 Javascript
html 锁定页面(js遮罩层弹出div效果)
Oct 27 Javascript
jquery 获取标签名(tagName)示例代码
Jul 11 Javascript
javascript数组详解
Oct 22 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
Apr 17 Javascript
js轮盘抽奖实例分析
Apr 17 Javascript
教你一步步用jQyery实现轮播器
Dec 18 Javascript
详谈$.data()的用法和作用
Feb 13 Javascript
详解打造 Vue.js 可复用组件
Mar 24 Javascript
详解Vue CLI 3.0脚手架如何mock数据
Nov 23 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
Nov 12 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 shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
jQuery中click事件用法实例
2014/12/26 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
Bootstrap组件(一)之菜单
2016/05/11 Javascript
Javascript基础教程之比较null和undefined值
2016/05/16 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
2016/11/29 Javascript
Canvas 绘制粒子动画背景
2017/02/15 Javascript
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
vue.js element-ui tree树形控件改iview的方法
2018/03/29 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
为什么要使用Vuex的介绍
2019/01/19 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
Python正则表达式教程之二:捕获篇
2017/03/02 Python
对python读取zip压缩文件里面的csv数据实例详解
2019/02/08 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
Django权限设置及验证方式
2020/05/13 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
2020/12/01 Python
Python项目打包成二进制的方法
2020/12/30 Python
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
加拿大快时尚零售商:Ardene
2018/02/14 全球购物
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
python 常用的异步框架汇总整理
2021/06/18 Python
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang