自定义组件-组件的生命周期

自定义组件-组件的生命周期

1.组件全部的生命周期函数

小程序组件可以用的全部生命周期如下表所示:

生命周期函数参数描述说明
created在组件实例刚刚被创建时执行
attached在组件实例进入页面节点树时执行
ready在组件在视图层布局完成后执行
moved在组件实例被移动到节点树另一个位置时执行
detached在组件实例被从页面节点树移除时执行
errorObject Error每当组件方法抛出错误时执行

2.组件主要的生命周期函数

在小程序组件中,最重要的生命中远期函数有3个,分别是createdattacheddetached。它们各自的特点

如下:

  1. 组件实例刚被创建好的时候,created生命周期函数会被触发

    • 此时还不能调用setData
    • 通常在这个生命函数中,只应该用于给组件的this添加一些自定义的属性字段
  2. 在组件完全初始化完毕、进入页面节点树后,attached生命周期函数会被触发

    • 此时,this.data已被初始化完毕
    • 这个声明周期很有用,绝大多数初始化的工作可以在这个实际进行(例如发请求获取初始数据)
  3. 在组件离开页面节点树后,detached生命周期函数会被触发

    • 退出一个页面时,会触发页面内每个自定义组件的detached生命周期函数
    • 此时适合做一些清理性质的工作

3.lifetimes节点

在小程序组件中,声明周期函数可以直接定义在Component构造器的第一级参数中,可以在lifetimes字段内进行声明(这是推荐的方式,其优先级最高)。示例代码如下:

Component({
	// 推荐用法
	lifetimes:{
		attched(){ }, // 在组件实例进入页面节点树时执行
		detached(){ }, // 在组件实例被从页面节点树移除时执行
	},
	// 以下是旧式的定义方式
	attched(){ }, // 在组件实例进入页面节点树时执行
	detached(){ }, // 在组件实例被从页面节点树移除时执行
})

自定义组件-组件所在页面的生命周期

1.什么是组件所在页面的生命周期

有时,自定义组件的行为依赖于页面状态的变化,此时就需要用到组件所在页面的生命周期

例如,每当触发页面的show生命周期函数的时候,我们希望能够重新生成一个随机的RGB颜色值。

在自定义组件中,组件所在页面的生命周期函数有如下3个,分别是:

生命周期函数参数描述
show组件所在的页面被展示时执行
hide组件所在的页面被隐藏时执行
resizeObject Size组件所在的页面尺寸变化时执行

2.pageLifetimes节点

组件所在页面的生命周期函数,需要定义在pageLifetimes节点中,示例代码如下:

Component({
  pageLifetimes:{
  	show:function(){},  // 页面被展示
  	hide:function(){},  // 页面被隐藏
  	resize:function(size){ } // 页面尺寸变化
  }
})

3.生成随机的RGB颜色

代码示例:

// components/test3/test3.js
Component({
    /**
     * 组件的属性列表
     */
    properties: {

    },

    /**
     * 组件的初始数据
     */
    data: {
        rgb:{
            r:0,
            g:0,
            b:0
        },
        fullColor:'0,0,0'
    },
    
    /**
     * 组件的方法列表
     */
    methods: {
        _randomColor(){
            this.setData({
                rgb:{
                    r:Math.floor(Math.random()*256),
                    g:Math.floor(Math.random()*256),
                    b:Math.floor(Math.random()*256)
                }
            })
        }
    },
    pageLifetimes:{
        show(){
            this._randomColor()
        }
    }
})

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uni-app自定义组件生命周期是基于Vue的生命周期来实现的。在uni-app中,自定义组件生命周期包括以下几个阶段: 1. created:组件实例被创建后触发的钩子函数。在这个阶段,可以对组件的初始数据进行设置和初始化操作。 2. beforeMount:在组件挂载之前触发的钩子函数。在这个阶段,可以进行一些准备工作,但此时组件还没有被渲染到页面上。 3. mounted:组件挂载到页面之后触发的钩子函数。在这个阶段,可以进行一些与页面交互的操作,例如请求数据、绑定事件等。 4. updated:组件更新后触发的钩子函数。在这个阶段,可以对组件进行重新渲染或更新数据等操作。 5. beforeDestroy:在组件销毁之前触发的钩子函数。在这个阶段,可以进行一些清理工作,例如解绑事件、取消订阅等。 6. destroyed:组件销毁之后触发的钩子函数。在这个阶段,组件的实例已经被销毁,不再可用。 需要注意的是,uni-app自定义组件生命周期中,并不能确定子组件被全部挂载,如果需要子组件完全挂载之后再执行操作,可以使用Vue官方提供的$nextTick方法。通过$nextTick方法,可以在下一次DOM更新循环结束之后执行特定的操作,确保子组件的挂载完成。 综上所述,uni-app自定义组件生命周期包括created、beforeMount、mounted、updated、beforeDestroy和destroyed等阶段。在这些阶段中,可以根据实际需求进行相应的操作和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值