一文詳解vue生命周期在uniapp中的用法
前言
首先我們要了解什么是uniapp,uni-app是一種基于 Vue.js 的跨平臺(tái)應(yīng)用框架,可以幫助開(kāi)發(fā)者使用一套代碼同時(shí)構(gòu)建小程序、H5、APP等多個(gè)平臺(tái)的應(yīng)用。 以下是 uni-app 的一些關(guān)鍵特性和概念:
- 跨平臺(tái)開(kāi)發(fā):
uni-app支持同時(shí)開(kāi)發(fā)微信小程序、支付寶小程序、百度小程序、H5、APP 等多個(gè)平臺(tái),通過(guò)一套代碼實(shí)現(xiàn)多端運(yùn)行。 - 基于 Vue.js:
uni-app基于 Vue.js 框架,開(kāi)發(fā)者可以使用熟悉的 Vue.js 語(yǔ)法進(jìn)行開(kāi)發(fā),同時(shí)享受 Vue.js 生態(tài)系統(tǒng)的豐富資源。 - 統(tǒng)一組件和 API:
uni-app提供了一套統(tǒng)一的組件和 API,開(kāi)發(fā)者可以在不同平臺(tái)上使用相同的組件和接口,減少了因平臺(tái)差異而引起的代碼調(diào)整。 - 自定義組件和插件: 開(kāi)發(fā)者可以通過(guò)創(chuàng)建自定義組件和插件來(lái)擴(kuò)展
uni-app的功能,實(shí)現(xiàn)更多定制化的需求。 - 支持原生能力:
uni-app提供了一些內(nèi)置的原生能力,例如拍照、錄音、獲取地理位置等,同時(shí)也支持調(diào)用原生小程序和原生 APP 的接口。 - 運(yùn)行時(shí)性能優(yōu)化:
uni-app通過(guò)將模板編譯為原生渲染的方式,優(yōu)化了運(yùn)行時(shí)性能,提高了應(yīng)用的響應(yīng)速度。 - 開(kāi)發(fā)工具支持:
uni-app提供了開(kāi)發(fā)工具,包括 HBuilderX等,用于輔助開(kāi)發(fā)和調(diào)試。 - 生態(tài)系統(tǒng):
uni-app生態(tài)系統(tǒng)豐富,有大量社區(qū)貢獻(xiàn)的插件、模板和組件,方便開(kāi)發(fā)者快速搭建和部署應(yīng)用。
uniapp中的vue生命周期
在uniapp中,vue的生命周期的用法基本都得以保留,但是對(duì)于特殊的需求以及特殊的情況,uniapp還引入了一些特有的生命周期鉤子。如下面的例子:
1、基本的生命周期
在 uni-app 中,我們可以正常使用 vue 生命周期的常見(jiàn)鉤子,例如 created、mounted、updated、destroyed。
<template>
<view>
<p>{{ message }}</p>
</view>
</template>
<script>
export default {
data() {
return {
message: 'Hello, uni-app!'
};
},
created() {
console.log('vue created ');
},
mounted() {
console.log('vue mounted ');
},
updated() {
console.log('vue updated ');
},
destroyed() {
console.log('vue destroyed ');
}
}
// 輸出結(jié)果為:
// vue created
// vue mounted
// vue updated
// vue destroyed
</script>
在 uniapp中,created 生命周期在組件實(shí)例創(chuàng)建后被調(diào)用,mounted 生命周期在組件掛載到 DOM 后被調(diào)用。updated 生命周期會(huì)在數(shù)據(jù)更新導(dǎo)致重新渲染時(shí)調(diào)用。destroyed 生命周期在組件銷(xiāo)毀時(shí)被調(diào)用。
2、特有的生命周期鉤子
在uniapp 引入了一些特有的生命周期鉤子,可以用于處理特定平臺(tái)的需求。以下是一些示例:
onNavigationBarButtonTap:處理小程序端導(dǎo)航欄按鈕點(diǎn)擊事件。如:
<script>
export default {
methods: {
onNavigationBarButtonTap() {
console.log('Button');
}
}
}
</script>
onNavigationBarButtonTap 生命周期鉤子用于處理小程序端導(dǎo)航欄按鈕點(diǎn)擊事件。當(dāng)用戶點(diǎn)擊導(dǎo)航欄按鈕時(shí),此函數(shù)會(huì)被觸發(fā)。
onLaunch、onHide、onError:處理 APP 端的啟動(dòng)、進(jìn)入后臺(tái)和錯(cuò)誤等情況。
<script>
export default {
onLaunch(options) {
console.log('Launched', options);
},
onHide() {
console.log('Hidden');
},
onError(err) {
console.error('Error', err);
}
}
</script>
在上述三個(gè)生命周期鉤子中,onLaunch、onError是會(huì)攜帶一個(gè)參數(shù)的,其中options,包含了 APP 啟動(dòng)時(shí)的參數(shù)信息,err,包含了錯(cuò)誤信息。
3、頁(yè)面生命周期
uniapp 的頁(yè)面生命周期在不同平臺(tái)中也有所不同,如小程序端的 onLoad、onReady 等
<script>
export default {
onLoad(options) {
console.log('Loaded', options);
},
onReady() {
console.log('Ready');
}
}
</script>
在 uniapp 中,onLoad 生命周期在頁(yè)面加載時(shí)被調(diào)用,onReady 生命周期在頁(yè)面渲染完成后被調(diào)用。onLoad 會(huì)接收頁(yè)面參數(shù) options,包含了頁(yè)面的啟動(dòng)參數(shù)。
結(jié)語(yǔ)
總的來(lái)說(shuō),vue生命周期在uniapp中有了如下的變化:
生命周期的執(zhí)行順序: 在
uniapp中,生命周期的執(zhí)行順序與 Vue.js 的標(biāo)準(zhǔn)執(zhí)行順序基本相同,但部分生命周期在小程序和APP端的執(zhí)行時(shí)機(jī)有所不同。- 小程序端:
onLoad->onShow->onReady->onHide->onUnload - APP端:
onLaunch->onShow->onHide->onError
- 小程序端:
特有生命周期鉤子:
uni-app引入了一些特有的生命周期鉤子,例如onNavigationBarButtonTap、onBackPress、onPageScroll等,用于處理在不同端(小程序、APP等)的特定事件。onReady在小程序端:onReady生命周期在小程序端表示頁(yè)面渲染完成,而在 Vue.js 中mounted生命周期表示 DOM 渲染完成。在uni-app中,你可能需要在onReady鉤子中進(jìn)行一些 DOM 操作。APP端生命周期: 在
uni-app的 APP 端,引入了額外的生命周期鉤子,如onLaunch、onHide、onError。這些生命周期用于處理 APP 啟動(dòng)、進(jìn)入后臺(tái)和錯(cuò)誤等情況。beforeDestroy在APP端: 在uni-app的 APP 端,beforeDestroy生命周期用于監(jiān)聽(tīng) APP 生命周期的銷(xiāo)毀情況,這在 Vue.js 中是沒(méi)有的。Vue.js 生命周期相同: 除了上述變化,
uni-app中依然保留了 Vue.js 標(biāo)準(zhǔn)的生命周期鉤子,如created、mounted、updated、destroyed。
以上就是一文詳解vue生命周期在uniapp中的用法的詳細(xì)內(nèi)容,更多關(guān)于vue生命周期在uniapp中的用法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Vue處理循環(huán)數(shù)據(jù)流程示例精講
這篇文章主要介紹了Vue處理循環(huán)數(shù)據(jù)流程,這個(gè)又是一個(gè)編程語(yǔ)言,?模版語(yǔ)法里面必不可少的一個(gè),?也是使用業(yè)務(wù)場(chǎng)景使用最多的一個(gè)環(huán)節(jié)。所以學(xué)會(huì)使用循環(huán)也是重中之重了2023-04-04
vue動(dòng)態(tài)禁用控件綁定disable的例子
今天小編就為大家分享一篇vue動(dòng)態(tài)禁用控件綁定disable的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
vue實(shí)現(xiàn)隨機(jī)驗(yàn)證碼功能(完整代碼)
驗(yàn)證碼功能在我們的身邊用處極廣,今天小編給大家分享基于vue實(shí)現(xiàn)隨機(jī)驗(yàn)證碼功能,感興趣的朋友跟隨小編一起看看吧2019-12-12
vue前端實(shí)現(xiàn)驗(yàn)證碼登錄功能
這篇文章主要介紹了vue前端實(shí)現(xiàn)驗(yàn)證碼登錄功能,登錄時(shí)圖形驗(yàn)證通過(guò)三種方法結(jié)合實(shí)例代碼給大家講解的非常詳細(xì), 通過(guò)實(shí)例代碼介紹了vue登錄時(shí)圖形驗(yàn)證碼功能的實(shí)現(xiàn),感興趣的朋友一起看看吧2023-12-12
vue實(shí)現(xiàn)動(dòng)態(tài)表單動(dòng)態(tài)渲染組件的方式(2)
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)動(dòng)態(tài)表單動(dòng)態(tài)渲染組件的方式第二篇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
Vue項(xiàng)目打包優(yōu)化實(shí)踐指南(推薦!)
如果引入的庫(kù)眾多,那么vendor.js文件體積將會(huì)相當(dāng)?shù)拇?影響首開(kāi)的體驗(yàn),這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目打包優(yōu)化實(shí)踐的相關(guān)資料,需要的朋友可以參考下2022-06-06
如何在Vue.js項(xiàng)目中使用Jest進(jìn)行單元測(cè)試
在眾多測(cè)試框架中,Jest?因其易用性、強(qiáng)大功能以及與?Vue.js?的良好兼容性,成為了許多開(kāi)發(fā)者的首選,本文將詳細(xì)介紹如何在?Vue.js?項(xiàng)目中使用?Jest?進(jìn)行單元測(cè)試,需要的可以參考下2024-11-11
Vue+ElementUI項(xiàng)目使用webpack輸出MPA的方法
這篇文章主要介紹了Vue+ElementUI項(xiàng)目使用webpack輸出MPA的方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08

