您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

uni-app生命周期、语法

本小节我们一起来了解 生命周期以及生命周期的语法。生命周期的几个阶段、触发机制和执行顺序。同学们不仅要理解生命周期的概念,还要知道生命周期从创建到销毁是怎样的过程。

生命周期就是指对象生老病死的过程,针对 来说,生命周期就是 实例从创建、运行到销毁的过程。

生命周期应用生命周期生命周期

应用生命周期:是控制应用全局的生命周期,监听应用初始化、启动、报错等状态。只在 App.vue 中有效,App.vue 是应用,用来配置 App 全局样式以及监听应用生命周期。

生命周期:是控制单个的生命周期,监听渲染、加载、、下拉、滚动、等状态。

在生命周期中的每个阶段都会伴随着的触发,从而执行生命周期中的具体逻辑,这些就被称为生命周期。

下面我们来看一下 中都哪些生命周期。

、定义:

当我们离开应用时,应用不会被直接销毁,而是进入了。当我们再次进入到应用时,应用就会从进入。

那应用什么时候会被真正销毁呢?

当应用进入超过一定时间,或者系统资源占用过高,应用才会被真正的销毁。再次打开就需要重新初始化启动应用。

生命周期 onLoad,是最先执行的生命周期,如果从上个到本,可以通过参数 option 传递上个的数据。

我们来看一下实例,比如要从(index.vue)到个人中心(me.vue)。
实例:

//index.vue
//语句,并在上面要传递的数据
uni.reLaunch({
    url: 'test?name=我是的数据'
});

//me.vue
export default {
    //options参数就是上个传递过来的数据
    onLoad: function (options) {
        console.log(options.name);
    }
}

//打印出来的结果
我是的数据

用于监听该下拉的动作。

普通下拉不会触发 onPullDownRefresh ,要先在 pages.json 里面,找到的 pages 节点,并在 style 选项中将 enablePullDownRefresh 设置为 true,下拉才可以触发 onPullDownRefresh 。

下面来看一下实例,比如我们想开启(index.vue)的下拉动作。
实例:

//pages.json
{
    "path": "pages/index/index.vue",
    "style": {
        "enablePullDownRefresh": true
    }
}

完成 onPullDownRefresh 后,用 stopPullDownRefresh 可以停止的下拉状态。
实例:

export default{
    onPullDownRefresh(){
        console.log('下拉时触发')
        uni.stopPullDownRefresh()
    }
}

实例:

export default {
    onTabItemTap(options) {
        console.log('被点击tabItem的序号index:' + options.index)
        console.log('被点击tabItem的路径pagePath:' + options.pagePath)
        console.log('被点击tabItem的按钮text:' + options.text)
    }
}

注意以下几点:

实例:

export default {
    onNavigationBarButtonTap(options) {
        console.log('index:' + options.index)
    }
}

返回结果的格式是这样的:event = {from:backbutton、 navigateBack}
其中 backbutton 表示来源是返回按钮或 android 返回键;navigateBack 表示来源是 uni.navigateBack。

实例:

export default {
    onBackPress(options) {
        console.log('from:' + options.from)
    }
}

我们将生命周期放在一起执行,看一下生命周期的执行顺序是怎样的

//App.vue
<script>
    export default {
        onLaunch: function() {
           console.log('应用生命周期onLaunch:应用初始化完成');
        },
        onShow: function() {
            console.log('应用生命周期onShow:应用启动完成')
        },
        onHide: function() {
            console.log('应用生命周期onHide:应用进入到状态')
        }
    }
</script>

//index.vue
<template></template>
<script>
    export default {
        onLoad() {
            console.log('生命周期onLoad:加载')
        },
        onShow() {
            console.log('生命周期onShow:')
        },
        onReady(){
            console.log('生命周期onReady:初次渲染完成')
        },
        onHide() {
            console.log('生命周期onHide:隐藏')
        },
        onUnload() {
            console.log('生命周期onUnload:卸载')
        },
        onBackPress(){
            console.log('生命周期onBackPress:返回')
        },
        onShareAppMessage() {
            console.log('生命周期onShareAppMessage:')
        },
        onReachBottom() {
            console.log('生命周期onReachBottom:上拉触底')
        },
        onPageScroll(){
            console.log('生命周期onPageScroll:滚动')
        },
        onPullDownRefresh() {
            console.log('生命周期onPullDownRefresh:下拉')
            uni.stopPullDownRefresh();
        },
        onNavigationBarButtonTap(){
            console.log('生命周期onNavigationBarButtonTap:栏按钮点击')
        }
    }
</script>

打印结果如下:

应用生命周期onLaunch:应用初始化完成
应用生命周期onShow:应用启动完成
生命周期onLoad:加载
生命周期onShow:
生命周期onReady:初次渲染完成

切换到其他,再切换。

应用生命周期onHide:应用进入到状态
生命周期onHide:隐藏
应用生命周期onShow:应用启动完成
生命周期onShow:

应用生命周期要先于生命周期执行。

onLaunch > onShow > onHide,其他生命周期需要相应动作触发才会执行。比如 onError 在应用出现才会被触发。

onLoad > onShow > onReady > onHide,其他生命周期需要相应动作触发才会执行。比如 onPullDownRefresh 在下拉的时候才会被触发。

本节课程我们主要学习了 生命周期。本节课程的重点如下:


联系我
置顶