微信小程序的Component()方法和组件生命周期

628 阅读2分钟

Component()方法

创建自定义组件,接受一个 Object 类型的参数。官方文档

常用参数

  1. properties:组件的对外属性,是属性名到属性设置的映射表。父传子使用,类似vue的props。
  2. data:组件的内部数据,和properties一同用于组件的模板渲染,this.data调用。
  3. observers:组件数据字段监听器,用于监听 properties 和 data 的变化。直接赋值改变变量无法监听到,只要setData()修改后不管是否改变值都会触发observers监听。详情
  4. methods:组件的方法,包括事件响应函数和任意的自定义方法。所有的自定义方法和页面或组件自带的钩子函数、生命周期、事件监听等系统方法。
  5. behaviors:类似于mixins和traits的组件间代码复用机制。
  6. created:组件生命周期函数-在组件实例刚刚被创建时执行,注意此时不能调用 setData。
  7. attached:组件生命周期函数-在组件实例进入页面节点树时执行。
  8. ready:组件生命周期函数-在组件布局完成后执行。
  9. moved:组件生命周期函数-在组件实例被移动到节点树另一个位置时执行。
  10. detached:组件生命周期函数-在组件实例被从页面节点树移除时执行。
  11. externalClasses:组件接受的外部样式类。
  12. options:一些选项如样式隔离styleIsolation和multipleSlots多插槽支持。
  13. lifetimes组件生命周期声明对象。
  14. pageLifetimes:组件所在页面的生命周期声明对象。showhideresizerouteDone(组件所在页面路由动画完成时执行),四个可用的生命周期。不用加on,注意后面跟着必须是function(){}函数箭头函数this无法获取到正确实例。

组件的生命周期

组件的生命周期,指的是组件自身的一些函数,这些函数在特殊的时间点或遇到一些特殊的框架事件时被自动触发。
其中,最重要的生命周期是 createdattachedreadydetached ,包含一个组件实例生命流程的最主要时间点。
注意生命周期函数推荐要写在lifetimes之中,写在Component一级参数中也能使用但不推荐。

created触发场景

  • 组件刚被创建时候执行,created中不能使用setData()。

attached触发场景

  • 组件实例进入页面节点树时候执行,已经把组件挂载到页面上。

ready触发场景

  • 组件布局完成渲染后执行。

detached触发场景

  • 组件被销毁时执行。

和vue的生命周期对照图

image.png