#小程序#小程序中父子组件间的通信与事件
2018-10-30 18:23
423 查看
子 - Component
child.json
[code]{ "component": true, "usingComponents": {} }
child.wxml
[code]<view class='template-child'> <block wx:for='{{dataFromParent}}'> <button data-id='{{item.id}}' bindtap='onTapChild'>{{item.name}}</button> </blcok> </view>
child.js
[code]Component({ /** * 组件的属性列表 */ properties: { dataFromParent: { type: Array, value: [], observer: function (newVal, oldVal, changedPath) { // 属性被改变时执行的函数(可选),也可以写成在methods段中定义的方法名字符串 // 通常 newVal 就是新设置的数据, oldVal 是旧数据 } } }, /** * 组件的初始数据 */ data: { }, /** * 组件的方法列表 */ methods: { onTapChild: function(event){ // detail对象,提供给事件监听函数 var myEventDetail = { id: event.currentTarget.dataset.id } // 触发事件的选项 var myEventOption = {} // 使用 triggerEvent 方法触发自定义组件事件,指定事件名、detail对象和事件选项 this.triggerEvent('parentEvent', myEventDetail, myEventOption) } } })
父 - Page
parent.json
[code]{ "usingComponents": { "child": "../component/child/child" } }
项目目录结构:
parent.wxml
[code]<view class='parent-wrap'> <view>这里是父容器, dataFromParent是传递给子组件的数据, parentEvent是自定义组件可触发的事件名</view> <child dataFromParent='{{contents}}' bind:parentEvent='onParentEvent'/> </view>
可以用 bind:parentEvent 也可以 bindparentEvent
parent.js
[code]Page({ /** * 页面的初始数据 */ data: { contents: [ { id: 1, name: '点击第 1 个按钮' }, { id: 2, name: '点击第 2 个按钮' } ] }, // 当自定义组件触发 parentEvent 事件时,调用 onParentEvent 方法 onParentEvent: function (event) { // 自定义组件触发事件时提供的detail对象,用来获取子组件传递来的数据 var id = event.detail.tag; console.log('子组件传递来的数据 id:', id); // 其他操作... } })
阅读更多
相关文章推荐
- 饿了么项目---12、父子组件、兄弟组件之间数据通信与事件派发(关于购物车添加按钮的动画)
- vue.js通过子组件通信和父子组件通信实现动态表单动态绑定事件(适合交互系统统一使用)
- 带着实例继续学习(2):父子组件通信之自定义事件
- Vue2单一事件管理组件通信
- [js高手之路]Vue2.0基于vue-cli+webpack父子组件通信教程
- Vue2--非父子组件通信笔记
- vue 父子组件通信
- vue 事件总线( vue-bus)非父子组件传值
- 【踩坑之旅】vue2+ 之父子组件及非父子组件之间的通信
- Vue.js-----轻量高效的MVVM框架(十、父子组件通信)
- 解决微信小程序组件scroll-view中bindscrolltolower事件触发不了的问题
- react 父子组件之间的通信和函数调用
- vue中的event bus非父子组件通信
- 父子组件通信-$emit
- vue2.0实现父子通信(基于之前我写的复选框组件)
- Angularjs2-下拉列表实现(父子组件通信)
- 快速掌握小程序组件事件自定义参数的方法
- Vue 父子组件、组件间通信
- Vue父子组件通信实践
- vue学习笔记--父子组件通信