一文詳解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)用戶(hù)點(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)文章
vant list組件滾動(dòng)保留滾動(dòng)條位置
這篇文章主要介紹了vant list組件滾動(dòng)保留滾動(dòng)條位置,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
vue項(xiàng)目如何使用three.js實(shí)現(xiàn)vr360度全景圖片預(yù)覽
這篇文章主要介紹了vue項(xiàng)目如何使用three.js實(shí)現(xiàn)vr360度全景圖片預(yù)覽,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
解決vue組件props傳值對(duì)象獲取不到的問(wèn)題
這篇文章主要介紹了vue組件props傳值,對(duì)象獲取不到的問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06
element-plus+Vue3實(shí)現(xiàn)表格數(shù)據(jù)動(dòng)態(tài)渲染
在Vue中,el-table是element-ui提供的強(qiáng)大表格組件,可以用于展示靜態(tài)和動(dòng)態(tài)表格數(shù)據(jù),本文主要介紹了element-plus+Vue3實(shí)現(xiàn)表格數(shù)據(jù)動(dòng)態(tài)渲染,感興趣的可以了解一下2024-03-03
vue jsx 使用指南及vue.js 使用jsx語(yǔ)法的方法
這篇文章主要介紹了vue jsx 使用指南及vue.js 使用jsx語(yǔ)法的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11
VUE開(kāi)發(fā)分布式醫(yī)療掛號(hào)系統(tǒng)的醫(yī)院設(shè)置頁(yè)面步驟
這篇文章主要為大家介紹了VUE開(kāi)發(fā)分布式醫(yī)療掛號(hào)系統(tǒng)的醫(yī)院設(shè)置頁(yè)面步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04

