# Component
Component构造器可用于定义组件,调用Component构造器时可以指定组件的属性、数据、方法等。
| 定义段 | 类型 | 是否必填 | 描述 |
| ---------- | ------------ | ---- | ---------------------------------------- |
| properties | Object Map | 否 | 组件的对外属性,是属性名到属性设置的映射表,属性设置中可包含三个字段, `type` 表示属性类型、 `value` 表示属性初始值、 `observer` 表示属性值被更改时的响应函数 |
| data | Object | 否 | 组件的内部数据,和 `properties` 一同用于组件的模版渲染 |
| methods | Object | 否 | 组件的方法,包括事件响应函数和任意的自定义方法,关于事件响应函数的使用,参见 [组件事件](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/custom-component/events.html) |
| behaviors | String Array | 否 | 类似于mixins和traits的组件间代码复用机制,参见 [behaviors](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/custom-component/behaviors.html) |
| created | Function | 否 | 组件生命周期函数,在组件实例进入页面节点树时执行,注意此时不能调用 `setData` |
| attached | Function | 否 | 组件生命周期函数,在组件实例进入页面节点树时执行 |
| ready | Function | 否 | 组件生命周期函数,在组件布局完成后执行,此时可以获取节点信息(使用 [SelectorQuery](https://mp.weixin.qq.com/debug/wxadoc/dev/api/wxml-nodes-info.html) ) |
| moved | Function | 否 | 组件生命周期函数,在组件实例被移动到节点树另一个位置时执行 |
| detached | Function | 否 | 组件生命周期函数,在组件实例被从页面节点树移除时执行 |
| relations | Object | 否 | 组件间关系定义,参见 [组件间关系](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/custom-component/relations.html) |
| options | Object Map | 否 | 一些组件选项,请参见文档其他部分的说明 |
生成的组件实例可以在组件的方法、生命周期函数和属性 `observer` 中通过 `this` 访问。组件包含一些通用属性和方法。
| 属性名 | 类型 | 描述 |
| ------- | ------ | ------------------- |
| is | String | 组件的文件路径 |
| id | String | 节点id |
| dataset | String | 节点dataset |
| data | Object | 组件数据,**包括内部数据和属性值** |
| 方法名 | 参数 | 描述 |
| ------------------- | ---------------------------------------- | ---------------------------------------- |
| setData | Object `newData` | 设置data并执行视图层渲染 |
| hasBehavior | Object `behavior` | 检查组件是否具有 `behavior` (检查时会递归检查被直接或间接引入的所有behavior) |
| triggerEvent | String `name`, Object `detail`, Object `options` | 触发事件,参见 [组件事件](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/custom-component/events.html) |
| createSelectorQuery | | 创建一个 [SelectorQuery](https://mp.weixin.qq.com/debug/wxadoc/dev/api/wxml-nodes-info.html) 对象,选择器选取范围为这个组件实例内 |
| selectComponent | String `selector` | 使用选择器选择组件实例节点,返回匹配到的第一个组件实例对象 |
| selectAllComponents | String `selector` | 使用选择器选择组件实例节点,返回匹配到的全部组件实例对象组成的数组 |
| getRelationNodes | String `relationKey` | 获取所有这个关系对应的所有关联节点,参见 [组件间关系](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/custom-component/relations.html) |
- 简介
- 第一章 公众号开发
- 使用微信JSSDK
- 接口权限配置
- 分享接口
- 隐藏按钮项
- 微信支付
- 第二章 小程序开发
- 基础知识
- 分包加载
- WXSS样式表
- 配置
- app.json配置
- window
- tabBar
- page.json配置
- 逻辑层
- app.js
- 场景值
- page.js
- 初始化数据
- 生命周期函数
- 页面相关事件处理函数
- 事件处理函数
- 页面实例方法
- 路由
- 文件作用域
- 模块化
- 视图层
- 模板语法
- 列表渲染
- 条件渲染
- 模板
- 事件
- 引用
- WXS语法规范
- WXS数据类型
- WXS控制流程
- WXS基础类库
- 组件
- 视图容器
- view
- scroll-view
- swiper
- movable-view
- cover-view
- 基础组件
- icon
- text
- rich-text
- progress
- 表单组件
- button
- checkbox
- form
- input
- label
- picker
- picker-view
- radio
- slider
- switch
- textarea
- 导航组件
- navigator
- 媒体组件
- audio
- image
- video
- camera
- 地图组件
- map
- 画布组件
- canvas
- 开放能力
- web-view
- 自定义组件
- 组件模版和样式
- Component
- 组件传值
- 组件事件
- Behaviors
- 组件间关系
- 网络请求
- wx.request
- 微信登录
- 获取 openid 和 unionid
- 获取用户信息
- 将 wx.request 封装为 promise
- 上传图片接口封装
- 数据存储
- 存储数据和读取数据
- 获取数据缓存信息
- 移除数据缓存
- 获取用户设置
- openSetting
- getSetting
- 第三章 小游戏开发
- 参考资料