## 自定义组件传参
### 1.父子传参(页面向组件传参)
例子:
**1.现在在index.js下data里有一个参数id(id: 1997)需要传递给组件music**
```
Page({
data: {
id: 1997
}
})
```
**2.在index.wxml给组件定义一个属性来承载参数**
一旦给组件添加属性,那么若添加的属性想要在组件内使用,必须在组件属性列表`(properties:{})`内注册
```
<v-music id="{{id}}"></v-music>
```
**3.在组件music.js注册属性**
属性注册需要规定数据类型type(必填),也可以给默认值value
```
Component({
/**
* 组件的属性列表
*/
properties: {
/* 简写方式:id: Number */
id: {
type: Number
}
},
/**
* 组件的初始数据
*/
data: {
},
/**
* 组件的方法列表
*/
methods: {
}
})
```
**4.数据已经传递给了组件,现在可以看下效果了,在music.wxml展示**
```
<view>{{id}}</view>
```
### 2.子父传参(组件向页面传参)
在子组件中定义事件,向父组件传递任意数据
例:现将组件music.js下data内的msg传递给index页面
**1.在music.wxml添加点击事件**
```
<view bindtap="onShow">
我是谁?
</view>
```
**2.在music.js方法列表写点击函数**
```
Component({
/**
* 组件的属性列表
*/
properties: {
},
/**
* 组件的初始数据
*/
data: {
msg: "you are beautiful"
},
/**
* 组件的方法列表
*/
methods: {
onShow(){
var msg = this.data.msg;
// 自定义组件触发事件时,需要使用 triggerEvent 方法,指定事件名、detail对象,传递给父组件
this.triggerEvent('message',msg)
}
}
})
```
**3.在index.wxml绑定来自组件的事件,并给事件方法名**
```
<view class="container">
<v-music bind:message="onMshow"></v-music>
</view>
```
**4.在index.js里便可以得到来自组件传递的参数**
```
Page({
data: {
},
onMshow(e){
console.log(e.detail); // you are beautiful
}
})
```
- 接口文档
- 1.开发环境的配置
- 2.wxml语法
- 2.1数据绑定
- 2.2列表渲染
- 2.3条件渲染
- 2.4模板引用
- 2.5事件
- 冒泡与非冒泡
- 2.6skill
- 2.7小程序接口调用
- 2.8获取自定义的属性值
- 2.9 Class动态绑定
- 3.小程序API组件
- 3.1音乐播放
- demo
- 3.2target与currentTarget
- 3.3下方导航页切换(tobar)
- 3.4let,var和const的区别
- 3.5轮播
- 3.6map
- 3.7 previewImage
- 3.8 chooseImage使用照相机
- 3.9 onReachBottom上拉刷新
- 3.10 下拉加载
- 3.11 使用缓存
- 3.12 scroll-view
- 3.13 webview
- 3.14 导航条加载,页面加载
- 3.15 模态框,弹出框
- 3.16 修改顶部标题
- 3.17 form,input获取内容
- 4.封装模板与自定义组件
- 4.1 父组件向子组件传参
- 4.2 behavior将子组件公共的部分封装
- 4.3 子组件自定义事件向组件传参
- 4.4 slot--父组件向子组件传递wxml
- 4.5 外部样式--父组件向子组件传递wxss
- 4.6 组件向页面传参
- 5.生命周期
- 6.HTTP封装
- 2.初代
- 4.终级豪华进化版本
- 7.精选小语法
- 7.1 text标签
- 7.2 wxs文件
- 7.3路径
- 7.4 小程序正则
- 8.demo
- 1.取数据并渲染的小程序
- data
- local.js
- images
- pages
- template
- template.wxml
- template.wxss
- index
- index-detail
- index-detail.js
- index-detail.json
- index-detail.wxml
- index-detail.wxss
- index.js
- index.json
- index.wxml
- index.wxss
- map
- map.js
- map.json
- map.wxml
- map.wxss
- movies
- movies.js
- movies.json
- movies.wxml
- movies.wxss
- web-page
- welcome
- utils
- utils.js
- app.js
- app.json
- app.wxss
