## Component构造器
[TOC]
### 定义段与示例方法
Component构造器可用于定义组件,调用Component构造器时可以指定组件的属性、数据、方法等。
![](https://box.kancloud.cn/d59f78317394a7d7af00aa561c5079bb_1045x395.png)
### 组件的生命周期
![](https://box.kancloud.cn/c16fb90842ab8a6f3a03b11536d13d28_1022x392.png)
created 组件实例化,但节点树还未导入,因此这时不能用setData
attached 节点树完成,可以用setData渲染节点,但无法操作节点
ready(不是onReady) 组件布局完成,这时可以获取节点信息,也可以操作节点
moved 组件实例被移动到树的另一个位置
detached 组件实例从节点树中移除
![](https://box.kancloud.cn/0f0357ba0fafbf4edb8a5b254b6836e9_985x459.png)
![](https://box.kancloud.cn/4b83298c5d4b8598c1d57f5a51f8a57b_1156x697.png)
### component 的使用
更多关于[component](https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/wxml-wxss.html)
#### component使用模板目录
1.创建components目录
2.在其中添加任意名字目录(success)
3.在该目录下新建任意名字的component(index)
![](https://box.kancloud.cn/9bf5d0848a55a56e55a66e0bac96b583_249x610.png)
#### 例
![](https://box.kancloud.cn/75c609290a2ab859a02b9bcef624740d_302x290.gif)
##### success>index.wxml
```
<icon type="{{type?'success':'cancel'}}" size="23" color="#abcdef" bindtap="handleClick"></icon>
<text>{{param}}</text>
```
*****
##### success>index.js
```
Component({
properties: {
src: {
type: Boolean
},
param:{
type:String
}
},
data: {
},
methods: {
//1.
handleClick() {
var type = this.data.type;
this.setData({
type:!type
})
console.log(this.data);
}
}
})
```
点击icon执行函数,同时`console.log(this.data)`打印出数据如下
![](https://box.kancloud.cn/ca937aa6454fc7bf480b8938d1d291a2_489x266.png)
*****
##### success>index.json
```
{
"component": true,
"usingComponents": {}
}
```
*****
*****
##### index>index.json
定义component组件的标签名和文件地址
```
{
"usingComponents":{
"v-success":"/components/success/index"
}
}
```
*****
##### index>index.wxml
>param为自定义传参
```
<v-success param="{{child}}"></v-success>
```
*****
##### index>index.js
>定义参数child的内容
```
Page({
data:{
child:"child"
}
})
```
*****
### component 的使用
更多关于[component](https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/wxml-wxss.html)
#### component使用模板目录
1.创建components目录
2.在其中添加任意名字目录(success)
3.在该目录下新建任意名字的component(index)
![](https://box.kancloud.cn/9bf5d0848a55a56e55a66e0bac96b583_249x610.png)
#### 例
![](https://box.kancloud.cn/75c609290a2ab859a02b9bcef624740d_302x290.gif)
##### success>index.wxml
```
<icon type="{{type?'success':'cancel'}}" size="23" color="#abcdef" bindtap="handleClick"></icon>
<text>{{param}}</text>
```
*****
##### success>index.js
```
Component({
properties: {
src: {
type: Boolean
},
param:{
type:String
}
},
data: {
},
methods: {
//1.
handleClick() {
var type = this.data.type;
this.setData({
type:!type
})
console.log(this.data);
}
}
})
```
点击icon执行函数,同时`console.log(this.data)`打印出数据如下
![](https://box.kancloud.cn/ca937aa6454fc7bf480b8938d1d291a2_489x266.png)
*****
##### success>index.json
```
{
"component": true,
"usingComponents": {}
}
```
*****
*****
##### index>index.json
定义component组件的标签名和文件地址
```
{
"usingComponents":{
"v-success":"/components/success/index"
}
}
```
*****
##### index>index.wxml
>param为自定义传参
```
<v-success param="{{child}}"></v-success>
```
*****
##### index>index.js
>定义参数child的内容
```
Page({
data:{
child:"child"
}
})
```
*****
- 项目启动配置
- 01.欢迎页
- 03.点击图片切换——事件绑定bindtap、catchtap
- 04.底方分页切换tabBar
- 20.音乐播放
- 06.豆瓣电影列表
- 1.App
- 2.template
- 3.movies-detail 页面详情
- 组件
- 02.地图
- 05.轮播图swiper
- 07.点击预览图片previewImage结合scroll-view
- 11.web-page
- 14.form表单
- 08.头像图片更换chooseImage
- 09.上拉刷新OnReachBottom
- 10.使用缓存(收藏、分享状态)
- 12.导航条加载、页面加载、导航标题设置
- 13.弹出框
- 15.demo
- data
- local.js
- pages
- welcome(欢迎页)
- index
- index.wxml
- index.wxss
- index.js
- index-detail
- index-detail.wxml
- index-detail.wxss
- index-detail.js
- template
- yuedu-list.wxml
- yuedu-list.wxss
- map
- movies
- movies.wxml
- movies.wxss
- movies.js
- movies-grid
- movies-grid-template.wxml
- movies-grid-template.wxss
- movies-item
- movies-item-template.wxml
- movies-item-template.wxss
- movies-more
- movies-more.wxml
- movies-more.wxss
- movies-more.js
- movie-detail
- movie-detail.wxss
- movie-detail.wxml
- movie-detail.js
- star
- star-template.wxml
- star-template.wxss
- web-page
- web-page.wxml
- web-page.js
- post-img
- post-img.wxml
- post-img.js
- post-img.wxss
- 演员列表图
- 列表图.wxml
- 列表图.wxss
- 列表图.js
- utils
- utils.js
- app.js
- app.json
- app.wxss
- 16.事件冒泡
- 18.Tip
- 框架
- 17.模板
- 19.组件模板和样式(slot)
- component构造器
- 组件事件
- behaviors
- wxs
- HTTP封装
- models使用封装HTTP
- 更多有关promise封装的例子
- 生命周期
- 注意: