文档:
组件模板和样式 | 微信开放文档

创建组件

1、在项目根目录中新建一个components文件夹存放组件
2、新建test文件夹存放单个组件,鼠标右键新建component
3、test文件下下生成 4 个文件.js``.json``.wxml``.wxss
image.pngimage.png

引用组件

引用组件可以分为「全局引入」和「局部引入」。

1、如何进行局部引入?

  1. {
  2. "usingComponents": {
  3. "my-test1":"/components/test1/test1"
  4. }
  5. }
  1. <view wx:for="{{ menuList }}" wx:key="index" data-info="{{ item }}" bind:tap="handleTap">
  2. {{index}}-{{item.name}}
  3. </view>
  4. <!-- 使用组件 -->
  5. <my-test1></my-test1>

2、如何全局引入?

  1. {
  2. "usingComponents": {
  3. "my-test2": "/components/test2/test2"
  4. },
  5. }

然后再任何的wxml文件内都可以使用了。

  1. <view>
  2. <!-- 局部 -->
  3. <my-test1></my-test1>
  4. </view>
  5. <view>
  6. <!-- 全局 -->
  7. <my-test2></my-test2>
  8. </view>

我们可以根据组件的使用频率和范围决定全局引入还是局部引入!

页面和组件的区别

1、组件的json文件需要使用component: true进行声明

  1. {
  2. "component": true,
  3. "usingComponents": {}
  4. }

2、组件的js文件调用的是Component()函数

  1. // components/test1/test1.js
  2. Component({
  3. /**
  4. * 组件的属性列表
  5. */
  6. properties: {
  7. },
  8. /**
  9. * 组件的初始数据
  10. */
  11. data: {
  12. },
  13. /**
  14. * 组件的方法列表
  15. */
  16. methods: {
  17. }
  18. })

3、组件的事件处理程序需要定义到methods对象中

  1. Component({
  2. // ...
  3. /**
  4. * 组件的方法列表
  5. */
  6. methods: {
  7. // 处理点击事件
  8. handleTap(){
  9. // ...
  10. }
  11. }
  12. })