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


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 相关文章推荐
EXTJS记事本 当CompositeField遇上RowEditor
Jul 31 Javascript
jQuery搜索子元素的方法
Feb 10 Javascript
JS表格组件神器bootstrap table详解(基础版)
Dec 08 Javascript
原生javascript实现的一个简单动画效果
Mar 30 Javascript
Javascript中apply、call、bind的巧妙使用
Aug 18 Javascript
JavaScript 动态三角函数实例详解
Jan 08 Javascript
微信小程序 图片宽度自适应的实现
Apr 06 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
Oct 30 Javascript
js实现登录与注册界面
Nov 01 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
Dec 22 Javascript
vue超时计算的组件实例代码
Jul 09 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
Aug 09 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 读取文件的正确方法
2009/04/29 PHP
PHP获取网址的顶级域名函数代码
2012/09/24 PHP
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
浅析node.js中close事件
2014/11/26 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
2016/06/17 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
对angular4子路由&amp;辅助路由详解
2018/10/09 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
2019/02/20 Javascript
JS原生瀑布流效果实现
2019/04/26 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
微信小程序实现上拉加载功能
2019/11/20 Javascript
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
Python3搭建http服务器的实现代码
2020/02/11 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
python上selenium的弹框操作实现
2020/07/13 Python
python Matplotlib模块的使用
2020/09/16 Python
新百伦折扣店:Joe’s New Balance Outlet
2016/08/20 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
什么是lambda函数
2013/09/17 面试题
教师专业理论水平的自我评价分享
2013/11/09 职场文书
大学生毕业的自我评价分享
2014/01/02 职场文书
幼儿园亲子活动方案
2014/01/29 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
《春酒》教学反思
2016/02/22 职场文书
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis
在HTML中引入CSS的几种方式介绍
2021/12/06 HTML / CSS
CentOS安装Nginx并部署vue
2022/04/12 Servers