Vue3學習(組合式API——生命周期函數基礎)

目錄

一、Vue3組合式API中的生命周期函數。

(1)各階段生命周期涉及函數簡單介紹。

<1>創建掛載階段的生命周期函數。

<2>更新階段的生命周期函數。

<3>卸載階段的生命周期函數。

<4>錯誤處理的生命周期函數。

(2)Vue3生命周期API——選項式與組合式對比。

Vue2 選項式、Vue3 選項式/組合式的卸載階段生命周期API對比。

(3)以Vue3組合式?onMounted 生命周期函數代碼示例。

<1>beforeCreate與created。(setup)

<2>onMounted。


一、Vue3組合式API中的生命周期函數。

(1)各階段生命周期涉及函數簡單介紹。
  • Vue3 中組合式 API 的生命周期函數,是在組件不同階段執行特定操作的回調函數通過 “onXXX” 形式實現,在 setup() 內調用

<1>創建掛載階段的生命周期函數。
  • onBeforeMount組件掛載到 DOM 前觸發。可初始化非響應式數據、設置全局狀態。
  • onMounted組件掛載到 DOM 后觸發。常用于 DOM 操作、獲取數據、啟動計時器等。

<2>更新階段的生命周期函數。
  • onBeforeUpdate響應式數據變化,組件更新前觸發。可用于比較數據變化、執行更新前邏輯。
  • onUpdated組件更新完成后觸發。可進行 DOM 操作、更新 UI。

<3>卸載階段的生命周期函數。
  • onBeforeUnmount組件卸載前觸發。適合做清理工作,如移除事件監聽器等。
  • onUnmounted組件卸載后觸發。用于執行最終清理,像銷毀定時器、釋放資源等。
<4>錯誤處理的生命周期函數。
  • onErrorCaptured捕獲子組件運行時錯誤。可處理錯誤、給出錯誤提示 。
(2)Vue3生命周期API——選項式與組合式對比。
選項式生命周期API組合式生命周期API
beforeCreate/createdsetup
beforeMountonBeforeMount
mountedonMounted
beforeUpdateonBeforeUpdate
updatedonUpdated
beforeUnmountonBeforeUnmount
unmountedonUnmounted

  • 注意:Vue3中是支持選項式API的。不過一般使用組合式API。邏輯方便復用、維護



  • Vue2 選項式、Vue3 選項式/組合式的卸載階段生命周期API對比。
Vue2 選項式 APIVue3 選項式 APIVue3 組合式 API作用場景
beforeDestroybeforeUnmountonBeforeUnmount組件卸載前的清理工作
destroyedunmountedonUnmounted組件卸載后的最終清理
(3)以Vue3組合式?onMounted 生命周期函數代碼示例。
<1>beforeCreate與created。(setup)
  • 代碼示例。
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app"></div><script type="module">import { createApp, ref } from './vue.esm-browser.js'createApp({setup() {//beforeCreate、created相關代碼一律放在setup中const getList = () => {//模擬發請求setTimeout(() => {console.log('發送請求,獲取數據List')}, 2000)}getList()return {}}}).mount('#app')</script>
</body></html>

  • 效果。


<2>onMounted。
  • 代碼示例。
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app"></div><script type="module">import { createApp, ref, onMounted } from './vue.esm-browser.js'createApp({setup() {//beforeCreate、created相關代碼一律放在setup中const getList = () => {//模擬發請求setTimeout(() => {console.log('發送請求,獲取數據List')}, 2000)}//一進入頁面的請求getList()//假設某些代碼需在mounted生命周期執行onMounted(() => {console.log('mounted生命周期函數')})return {}}}).mount('#app')</script>
</body></html>

  • 效果。


  • 生命周期函數寫成函數的調用方式,可以多次進行調用。(可寫不同的邏輯,不會沖突且按照先后執行)
  • 代碼示例。
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app"></div><script type="module">import { createApp, ref, onMounted } from './vue.esm-browser.js'createApp({setup() {//beforeCreate、created相關代碼一律放在setup中const getList = () => {//模擬發請求setTimeout(() => {console.log('發送請求,獲取數據List')}, 2000)}//一進入頁面的請求getList()//假設某些代碼需在mounted生命周期執行onMounted(() => {console.log('mounted生命周期函數,邏輯1')})//寫成函數的調用方式,可以調用多次。// 調用一次函數提供一個鉤子,不會沖突,按照先后進行執行onMounted(() => {console.log('mounted生命周期函數,邏輯2')})return {}}}).mount('#app')</script>
</body></html>

  • 效果。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/80057.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80057.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80057.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

道通EVO MAX系列無人機-支持二次開發

道通EVO MAX系列無人機-支持二次開發 EVO Max 系列采用Autel Autonomy自主飛行技術&#xff0c;實現復雜環境下的全局路徑規劃、3D場景重建、自主繞障和返航&#xff1b;高精度視覺導航能力&#xff0c;使其在信號干擾強、信號遮擋、信號弱等復雜環境下&#xff0c;依然獲得高精…

網張實驗操作-防火墻+NAT

實驗目的 了解防火墻&#xff08;ENSP中的USG5500&#xff09;域間轉發策略配置、NAT&#xff08;與路由器NAT配置命令不同&#xff09;配置。 網絡拓撲 兩個防火墻連接分別連接一個內網&#xff0c;中間通過路由器連接。配置NAT之后&#xff0c;內網PC可以ping公網&#xf…

FPGA: UltraScale+ bitslip實現(方案+代碼)

收獲 一晃五年~ 五年前那個夏夜&#xff0c;我對著泛藍的屏幕敲下《給十年后的自己》&#xff0c;在2020年的疫情迷霧中編織著對未來的想象。此刻回望&#xff0c;第四屆集創賽的參賽編號仍清晰如昨&#xff0c;而那個在家熬夜焊電路板的"不眠者"&#xff0c;現在…

機器學習筆記2

5 TfidfVectorizer TF-IDF文本特征詞的重要程度特征提取 (1) 算法 詞頻(Term Frequency, TF), 表示一個詞在當前篇文章中的重要性 逆文檔頻率(Inverse Document Frequency, IDF), 反映了詞在整個文檔集合中的稀有程度 (2) API sklearn.feature_extraction.text.TfidfVector…

UV 快速入門和使用案例

UV 快速入門和使用案例 作者&#xff1a;王珂 郵箱&#xff1a;49186456qq.com 文章目錄 UV 快速入門和使用案例簡介一、安裝1.1 安裝包安裝1.2 從 PyPI 安裝二、使用2.1 創建項目2.2 包管理2.3 工具2.4 Python 版本 簡介 官網&#xff1a; 項目&#xff1a; https://githu…

質控腳本來嘍

好久不更新&#xff0c;上個硬貨。腳本需提前準備宿主和rrna的bowtie2索引文件&#xff0c;原始數據的命名方式為{sample}_raw_1/2.fq.gz&#xff0c;保存有原始數據路徑的文件&#xff0c;保存樣品列表的文件。 最后打個廣告&#xff0c;歡迎畜牧學方向的研究生報考蘭州大學。…

Linux Bash | Capture Output / Recall

注&#xff1a;本文為 “Linux Bash | Capture Output / Recall” 相關文章合輯。 英文引文&#xff0c;機翻未校。 中文引文&#xff0c;略作重排。 Automatically Capture Output of the Last Command Into a Variable Using Bash 使用 Bash自動將最后一個命令的輸出捕獲到…

編程題 03-樹2 List Leaves【PAT】

文章目錄 題目輸入格式輸出格式輸入樣例輸出樣例 題解解題思路完整代碼 編程練習題目集目錄 題目 Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. 輸入格式 Each input file contains one test case. For each case, …

QT設置MySQL驅動

QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 第一步&#xff1a;下載MySQL https://dev.mysql.com/downloads/mysql/ 解壓縮下載的安裝包&#xff0c;其目錄結構如下所示&#xff1a; 第二…

ABP User Interface-Angular UI中文詳解

本系列文章主要用于對ABP User Interface-Angular UI &#xff08;Angular UI | ABP.IO Documentation&#xff09;不分的中文講解以及記錄自己在學習過程中發現的容易出錯的地方。 1. 開發Development 2. 核心功能Core Functions 3. 通用組件Utilities 4. 自定義Customiza…

常用負載均衡技術有哪些?不同網絡層面上的網絡負載均衡技術

前言 負載均衡是一種策略&#xff0c;它能讓多臺服務器或多條鏈路共同承擔一些繁重的計算或I/O任務&#xff0c;從而以較低成本消除網絡瓶頸&#xff0c;提高網絡的靈活性和可靠性。 在系統管理員發現網絡性能不好時&#xff0c;可以通過網絡負載均衡來分配資源&#xff0c;以…

ARMV8 RK3399 u-boot TPL啟動流程分析 --crt0.S

上一篇介紹到start.S 最后一個指令是跳轉到_main, 接下來分析 __main 都做了什么 arch/arm/lib/crt0.S __main 注釋寫的很詳細&#xff0c;主要分為5步 1. 準備board_init_f的運行環境 2. 跳轉到board_init_f 3. 設置broad_init_f 申請的stack 和 GD 4. 完整u-boot 執行re…

RabbitMQ--進階篇

RabbitMQ 客戶端整合Spring Boot 添加相關的依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> 編寫配置文件&#xff0c;配置RabbitMQ的服務信息 spri…

Redis--基礎知識點--27--redis緩存分類樹

在 Redis 中存儲分類樹&#xff0c;通常需要選擇合適的數據結構來表現層級關系。以下是使用 字符串&#xff08;String&#xff09; 和 哈希&#xff08;Hash&#xff09; 兩種常見方案的舉例說明&#xff0c;結合電商分類場景&#xff08;如 電子產品 > 手機 > 智能手機…

【C++】匯編角度分析棧攻擊

棧攻擊 介紹原理示例代碼匯編分析 介紹原理 核心原理是通過 緩沖區溢出&#xff08;Buffer Overflow&#xff09; 等漏洞&#xff0c;覆蓋棧上的關鍵數據&#xff08;如返回地址、函數指針&#xff09;&#xff0c;從而改變程序執行流程&#xff1b; 在 C 中&#xff0c;每個…

訪問 Docker 官方鏡像源(包括代理)全部被“重置連接”或超時

華為云輕量應用服務器&#xff08;Ubuntu 系統&#xff09; 遇到的問題是&#xff1a; &#x1f512; 訪問 Docker 官方鏡像源&#xff08;包括代理&#xff09;全部被“重置連接”或超時了&#xff0c;說明你這臺服務器的出境網絡對這些國外域名限制很嚴格&#xff0c;常見于華…

Java語言

本文來源 &#xff1a; 騰訊元寶 Java是一種面向對象、跨平臺的高級編程語言&#xff0c;最初由Sun Microsystems&#xff08;現為Oracle公司所有&#xff09;于1995年推出&#xff0c;廣泛應用于Web開發、移動應用、大數據處理、嵌入式系統等領域。以下是其核心特點和應用概述…

無償幫寫畢業論文(看不懂的可以私信博主)

以下教程教你如何利用相關網站和AI免費幫你寫一個畢業論文。畢竟畢業論文只要過就行&#xff0c;脫產學習這么多年&#xff0c;終于熬出頭了&#xff0c;完成畢設后有空就去多看看親人好友&#xff0c;祝好&#xff01; 一、找一個論文模板 廢話不多說&#xff0c;先上干貨Ov…

python打卡day26

函數、參數、變量 知識點回顧&#xff1a; 函數的定義變量作用域&#xff1a;局部變量和全局變量函數的參數類型&#xff1a;位置參數、默認參數、不定參數傳遞參數的手段&#xff1a;關鍵詞參數傳遞參數的順序&#xff1a;同時出現三種參數類型時 def function_name(parameter…

LeetCode 熱題 100 437. 路徑總和 III

LeetCode 熱題 100 | 437. 路徑總和 III 大家好&#xff0c;今天我們來解決一道經典的二叉樹問題——路徑總和 III。這道題在 LeetCode 上被標記為中等難度&#xff0c;要求計算二叉樹中節點值之和等于給定目標值 targetSum 的路徑數目。 問題描述 給定一個二叉樹的根節點 ro…