小程序组件化开发

本文介绍了微信小程序的组件化思想,详细阐述了自定义组件的声明、样式实现、组件间的通信方式,包括properties、externalClasses、自定义事件。此外,还提到了组件的生命周期、插槽定义使用、Behaviors(组件混入)以及Component构造器的作用。文章特别强调了在不同生命周期中进行组件初始化和数据处理的策略。
摘要由CSDN通过智能技术生成

一. 小程序组件化思想

二. 自定义组件的过程

  1. 首先需要在 json 文件中进行自定义组件声明(将 component 字段设为true 可这一组文件设为自定义组件):
  2. 在 wxml 中编写属于我们组件自己的模板
  3. 在 wxss 中编写属于我们组件自己的相关样式
  4. 在 js 文件中 , 可以定义数据或组件内部的相关逻辑 
  • 自定义组件也是可以引用自定义组件的,引用方法类似于页面引用自定义组件的方式(使用 usingComponents 字段)。
  • 自定义组件和页面所在项目根目录名不能以“ wx-”为前缀 ,否则会报错。
  • 如果在 app.json 的 usingComponents 声明某个组件 ,那么 所有页面和组件可以直接使用该组件

三. 组件样式实现细节

四.  组件使用过程通信

4.1 向组件传递数据 properties

 4.2 向组件传递样式 externalClasses

 4.3 组件向外传递事件 自定义事件

通过 this.triggerEvent(“eventName”,payload)

自定义事件的参数传递在 event.detail

 案例

 4.4 页面直接调用组件  this.selectComponent

五. 组件插槽定义使用 

  1.  单个插槽的使用(小程序插槽不支持默认值,通过样式的显示隐藏实现)
  2. 多个插槽的使用  【具名插槽】

六. Behaviros 组件的混入 

  Behavior(Object object) | 微信开放文档

behaviors | 微信开放文档

 七. 组件的生命周期 组件生命周期 | 微信开放文档

 

  • 组件实例刚刚被创建好时, created 生命周期被触发。此时,组件数据 this.data 就是在 Component 构造器中定义的数据 data 。 此时还不能调用 setData 。 通常情况下,这个生命周期只应该用于给组件 this 添加一些自定义属性字段。
  • 在组件完全初始化完毕、进入页面节点树后, attached 生命周期被触发。此时 this.data 已被初始化为组件的当前值。这个生命周期很有用,绝大多数初始化工作可以在这个时机进行。
  • 在组件离开页面节点树后, detached 生命周期被触发。退出一个页面时,如果组件还在页面节点树中,则 detached 会被触发。

在 behaviors 中也可以编写生命周期方法,同时不会与其他 behaviors 中的同名生命周期相互覆盖。但要注意,如果一个组件多次直接或间接引用同一个 behavior ,这个 behavior 中的生命周期函数在一个执行时机内只会执行一次。

 组件所在页面的生命周期

还有一些特殊的生命周期,它们并非与组件有很强的关联,但有时组件需要获知,以便组件内部处理。这样的生命周期称为“组件所在页面的生命周期”,在 pageLifetimes 定义段中定义。其中可用的生命周期包括:

七. Component构造器

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
wepy 是一个小程序组件开发框架。 组件 小程序支持js模块,但彼此独立,业务代码与交互事件仍需在页面处理。无法实现组件的松耦合与复用的效果。 例如模板A中绑定一个bindtap="myclick",模板B中同样绑定一样bindtap="myclick",那么就会影响同一个页面事件。对于数据同样如此。因此只有通过改变变量或者事件方法,或者给其加不同前缀才能实现绑定不同事件或者不同数据。当页面复杂之后就十分不利于开发维护。 因此wepy让小程序支持组件开发组件的所有业务与功能在组件本身实现,组件组件之间彼此隔离,上述例子在wepy的组件开发过程中,A组件只会影响到A绑定的myclick,B也如此。 wepy编译组件的过程如下: 组件引用 当页面或者组件需要引入子组件时,需要在页面或者script中的components给组件分配唯一id,并且在template中添加标签,如index.wpy。 页面和组件都可以引入子组件,引入若干组件后,如下图: Index页面引入A,B,C三个组件,同时组件A和B又有自己的子组件D,E,F,G,H。 项目目录结构 ├── dist                   微信开发者工具指定的目录 ├── node_modules            ├── src                    代码编写的目录 |   ├── components         组件文件夹(非完整页面) |   |   ├── com_a.wpy      可复用组件 a |   |   └── com_b.wpy      可复用组件 b |   ├── pages              页面文件夹(完整页面) |   |   ├── index.wpy      页面 index |   |   └── page.wpy       页面 page |   └── app.wpy            小程序配置项(全局样式配置、声明钩子等) └── package.json           package 配置 主要解决问题 开发模式转换 支持组件开发 支持加载外部 NPM 包 单文件模式,使得目录结构更加清晰 默认使用 babel 编译,支持 ES6/7 的一些新特性 针对原生 API 进行优 标签:wepy  小程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值