一文詳解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-09vue項(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-06element-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-03vue jsx 使用指南及vue.js 使用jsx語(yǔ)法的方法
這篇文章主要介紹了vue jsx 使用指南及vue.js 使用jsx語(yǔ)法的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11VUE開(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