### [應用生命周期](https://uniapp.dcloud.io/collocation/frame/lifecycle?id=app)
`uni-app`支持如下應用生命周期函數:
| 函數名 | 說明 |
| --- | --- |
| onLaunch | 當`uni-app`初始化完成時觸發(全局只觸發一次) |
| onShow | 當`uni-app`啟動,或從后臺進入前臺顯示 |
| onHide | 當`uni-app`從前臺進入后臺 |
| onError | 當`uni-app`報錯時觸發 |
| onUniNViewMessage | 對`nvue`頁面發送的數據進行監聽,可參考[nvue 向 vue 通訊](https://uniapp.dcloud.io/nvue-api?id=communication) |
| onUnhandledRejection | 對未處理的 Promise 拒絕事件監聽函數(2.8.1+) |
| onPageNotFound | 頁面不存在監聽函數 |
| onThemeChange | 監聽系統主題變化 |
**注意**
* 應用生命周期僅可在`App.vue`中監聽,在其它頁面監聽無效。
* onlaunch里進行頁面跳轉,如遇白屏報錯,請參考[https://ask.dcloud.net.cn/article/35942](https://ask.dcloud.net.cn/article/35942)
* onPageNotFound 頁面實際上已經打開了(比如通過分享卡片、小程序碼)且發現頁面不存在,才會觸發,api 跳轉不存在的頁面不會觸發(如 uni.navigateTo)
**示例代碼一**
~~~
<script>
// 只能在App.vue里監聽應用的生命周期
export default {
onLaunch: function() {
console.log('App Launch')
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
~~~
**示例代碼二*
```
<script>
export default {
onLaunch: function() {
console.log('App Launch')
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
},
onPageNotFound(){
uni.navigateTo({
url: '/pages/404/404',
success: res => {},
fail: () => {},
complete: () => {}
});
}
}
</script>
```
實例一
頁面2秒自動跳轉
```
<script>
export default {
data() {
return {
}
},
methods: {
},
onLoad() {
let timer = setTimeout(()=>{
clearTimeout(timer)
uni.navigateTo({
url:"/pages/index/index"
})
},2000)
}
}
</script>
```