Vue3學習(生命周期,hooks,axios的簡單講解)

一,前言

繼續努力,南方見。

二,生命周期

1.對生命周期的理解

例如:人的生命周期,出生,經歷,死亡

組件的話就是,創建,掛載,更新,銷毀。***在特定的時刻調用特定的函數,***鉤子也叫生命周期函數。

2,Vue2的生命周期

生命周期函數

創建前,創建完畢,掛載前,掛載完畢,更新前,更新完畢,銷毀前,銷毀完畢。

Vue2 的生命周期包含 8 個主要鉤子函數:

  1. beforeCreate:實例初始化之后,數據觀測 data observerevent/watcher 事件配置之前被調用。
  2. created:實例已經創建完成之后被調用。在這一步,實例已經完成了數據觀測 data observerpropertymethod 的計算,watch/event 事件回調。然而,掛載階段還沒有開始,$el 屬性目前不可用。
  3. beforeMount:在掛載開始之前被調用:相關的 render 函數首次被調用。
  4. mountedel 被新創建的 vm.$el 替換,并掛載到實例上去之后調用該鉤子。
  5. beforeUpdate:數據更新時調用,發生在虛擬 DOM 打補丁之前。這里適合在更新之前訪問現有的 DOM,比如手動移除已添加的事件監聽器。
  6. updated:由于數據更改導致的虛擬 DOM 重新渲染和打補丁,在這之后會調用該鉤子。
  7. beforeDestroy:實例銷毀之前調用。在這一步,實例仍然完全可用。
  8. destroyed:Vue 實例銷毀后調用。調用后,所有的事件監聽器和子實例都已經被銷毀。

在Vue2中使用npm run serve 運行項目。可以在package.json中查到。

Vue2中組件名使用多單詞

3,Vue3的生命周期

Vue3將銷毀改叫卸載

Vue3 對生命周期進行了一些調整,同時引入了組合式 API:

  1. setup:在創建組件實例時,初始化 props 和上下文之后立即調用 setup。它是組合式 API 的入口點,在 beforeCreate 之前調用。
  2. onBeforeMount:對應 Vue2 的 beforeMount,在掛載開始之前被調用。
  3. onMounted:對應 Vue2 的 mounted,組件掛載完成后調用。
  4. onBeforeUpdate:對應 Vue2 的 beforeUpdate,在數據更新前調用。
  5. onUpdated:對應 Vue2 的 updated,在數據更新后調用。
  6. onBeforeUnmount:對應 Vue2 的 beforeDestroy,在組件實例卸載之前調用。
  7. onUnmounted:對應 Vue2 的 destroyed,在組件實例卸載之后調用。
  8. onErrorCaptured:當捕獲到一個來自子孫組件的錯誤時被調用。
  9. onRenderTracked:調試鉤子,當一個響應式依賴被組件渲染跟蹤時調用。
  10. onRenderTriggered:調試鉤子,當一個響應式依賴觸發組件渲染時調用。
  11. onActivated:在使用 <keep-alive> 緩存的組件被激活時調用。
  12. onDeactivated:在使用 <keep-alive> 緩存的組件被停用時調用。

生命周期對比表

Vue2 鉤子Vue3 組合式 API 等效鉤子
beforeCreatesetup()
createdsetup()
beforeMountonBeforeMount
mountedonMounted
beforeUpdateonBeforeUpdate
updatedonUpdated
beforeDestroyonBeforeUnmount
destroyedonUnmounted
activatedonActivated
deactivatedonDeactivated
errorCapturedonErrorCaptured

Vue3 通過組合式 API 提供了更靈活的方式來組織和復用邏輯,同時保留了選項式 API 的使用方式,讓開發者可以根據項目需求進行選擇。

三,Hooks

Vue3 的 Hook(組合式函數)是自定義的可復用邏輯函數,使用 Composition API(如 refreactivewatch)封裝有狀態的邏輯。

核心作用:

  1. 邏輯復用:提取公共邏輯,避免重復代碼。
  2. 狀態管理:封裝有狀態的邏輯(如計數器、表單驗證)。
  3. 副作用處理:管理生命周期、事件監聽等副作用。
  4. 代碼組織:將相關邏輯集中到一個函數中,提高可讀性。

核心特點:

  1. 復用邏輯:提取公共邏輯(如計數器、窗口監聽)。
  2. 響應式:使用 ref/reactive 管理狀態。
  3. 生命周期安全:通過 onMounted/onUnmounted 處理副作用。

基礎示例:

// useCounter.js
import { ref } from 'vue'export function useCounter(initialValue = 0) {const count = ref(initialValue)const increment = () => count.value++return { count, increment }
}

使用方式:

<script setup>
import { useCounter } from './useCounter'
const { count, increment } = useCounter(0)
</script>

優勢:

  • 邏輯復用更靈活
  • 代碼組織更清晰
  • 跨組件共享狀態邏輯

常見應用場景:

  • 表單處理
  • 數據獲取與緩存
  • 事件監聽與清理
  • 響應式窗口尺寸
  • 本地存儲管理

四,axios

Axios 是一個基于 Promise 的 HTTP 客戶端,用于瀏覽器和 Node.js。它的特點是支持 Promise API、攔截請求和響應、轉換請求和響應數據、取消請求、自動轉換 JSON 數據以及客戶端支持防御 XSRF 等。必須掌握

安裝

使用 npm 或 yarn 安裝:

npm install axios
# 或
yarn add axios
  1. 基礎用法:支持 GET、POST 等請求方法,返回 Promise
// GET 請求
axios.get('/api/data').then(res => console.log(res.data));// POST 請求
axios.post('/api/submit', { data: 'value' });

2.特性

  • 自動轉換 JSON 數據
  • 攔截請求和響應(如添加 token)
  • 請求取消與超時處理
  • 錯誤統一處理

3.常見場景

// 全局配置
axios.defaults.baseURL = 'https://api.example.com';// 攔截器(添加 token)
axios.interceptors.request.use(config => {config.headers.Authorization = localStorage.getItem('token');return config;
});// 錯誤處理
axios.get('/data').catch(err => {if (err.response.status === 401) {// 處理未授權}
});

適合前后端數據交互,尤其在 React/Vue 項目中廣泛使用。

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

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

相關文章

Pytorch實戰四 基于 VGG net 搭建一個串聯的神經網絡結構

系列文章目錄 文章目錄 系列文章目錄前言一、VGG類的搭建1.源碼2.初始化類2.1 初始化函數2.2 前向傳播函數 forward(self,x) 二、卷積補充卷積 前言 對于標準的 VGG net 輸入圖像的尺寸是 24 x 24,進行 32 維的下采樣之后得到一個 7 x 7 的特征圖&#xff0c;然后用 FC 層完成分…

大學專業解讀——計算機

我們繼續&#xff0c;講講排名第二流行的新工科專業——計算機。說到計算機&#xff0c;可能所有人都知道&#xff0c;但具體到細分的專業類別&#xff0c;除了計算機科學&#xff0c;其實大多數人都是不了解的。 序&#xff1a; 計算機主要有如下幾個專業&#xff1a; 計算機…

Bootstrap 5學習教程,從入門到精通, Bootstrap 5 列表組(List Group)語法知識點及案例(14)

Bootstrap 5 列表組(List Group)語法知識點及案例 一、列表組基礎語法 列表組是Bootstrap中用于顯示一系列內容的靈活組件&#xff0c;常用于顯示菜單、導航或任何項目列表。 基本列表組結構 <ul class"list-group"><li class"list-group-item&quo…

FPGA基礎 -- Verilog 命名事件

Verilog 的“命名事件&#xff08;Named Events&#xff09;”機制 進行一次系統、專業的培訓。該機制在 Verilog 中是比較冷門但重要的仿真控制特性&#xff0c;主要用于 模塊間同步、行為仿真觸發、事件通信&#xff0c;在復雜的 Testbench、行為模型中尤為重要。 一、命名事…

《Go語言圣經》結構體

《Go語言圣經》結構體 一、結構體指針的高效應用 在處理大型結構體時&#xff0c;為避免內存復制&#xff0c;通常使用指針傳遞和返回結構體&#xff1a; // 通過指針傳入結構體&#xff0c;避免值拷貝 func Bonus(e *Employee, percent int) int {return e.Salary * percen…

Ascend上如何進行帶寬測試

1 工具安裝 1.1 下載鏈接 https://www.hiascend.com/developer/download/community/result?moduledl%2Bcann 1.2 安裝指令&#xff1a; ./Ascend-mindx-toolbox_{version}_linux-{arch}.run --install設置環境變量&#xff1a; source /usr/local/Ascend/toolbox/set_env.…

生產BUG集

磁盤達到閾值導致ES無法刪除數據 method [POST], host [http://xx.xxx.xxx.xxx:9200], URI [/security_event/_delete_by_query?slices1&requests_per_second-1&ignore_unavailablefalse&expand_wildcardsopen&allow_no_indicestrue&ignore_throttledtru…

基于FastAPI與Selenium的智能開關狀態管理系統實踐

引言 在工業物聯網&#xff08;IIoT&#xff09;與自動化控制場景中&#xff0c;設備狀態的實時監控與自然語言指令執行是提升效率的關鍵。本文將介紹一種基于 FastAPI 和 Selenium 的智能設備狀態管理系統&#xff0c;通過大語言模型&#xff08;LLM&#xff09;解析用戶指令…

主體和債項均為“AAA”等級 海爾消金發行10億金融債

6月18日&#xff0c;繼年內發行ABS、落地ESG掛鉤銀團貸后&#xff0c;海爾消費金融&#xff08;以下簡稱“海爾消金”&#xff09;在金融市場上又邁出重要一步&#xff0c;成功簿記發行2025年首期規模達10億元金融債&#xff0c;且主體信用等級仍為“AAA”。這一舉措為海爾消金…

n8n:輕松自動化您的工作流

借助開源自動化利器 n8n&#xff0c;釋放重復勞動的生產力&#xff01; 引言 n8n 是一款免費、開源的工作流自動化工具&#xff0c;致力于幫助開發者和團隊通過連接各種應用和服務&#xff0c;實現重復任務的自動化處理。 它由 Jan Oberhauser 于 2019 年在德國柏林創建&…

Angular--Hello(TODO)

最近有個小錯誤&#xff0c;因為最近還是在看thingsboard&#xff0c;最近終于看到前端的代碼&#xff0c;突然發現怎么全是ts的文件&#xff0c;仔細一看原來并不是之前認為的AngularJS&#xff0c;而是Angular。。。我tm真的無語了&#xff0c;又要去重新學。。。 Angular的…

在 Linux 系統中通過 yum 安裝 Sublime Text

在 Linux 系統中通過 yum 安裝 Sublime Text 的步驟如下&#xff1a; ?步驟 1&#xff1a;導入 GPG 公鑰? sudo rpm -v --import https://download.sublimetext.com/sublimehq-rpm-pub.gpg 這一步用于驗證軟件包的合法性。 ?步驟 2&#xff1a;添加 Sublime Text 的軟件倉…

面向自主多星對地觀測的多智能體強化學習

大家讀完覺的有幫助記得及時關注和點贊&#xff01;&#xff01;&#xff01; 抽象 近地軌道 &#xff08;LEO&#xff09; 衛星的指數級增長徹底改變了地球觀測 &#xff08;EO&#xff09; 任務&#xff0c;解決了氣候監測、災害管理等方面的挑戰。然而&#xff0c;多衛星系統…

flutter 短視頻相關插件選型

?插件名稱??核心優勢??缺點??短視頻場景適用性??推薦指數??video_player? (官方基礎庫)? 官方維護&#xff0c;跨平臺兼容性最佳&#xff08;iOS/Android/macOS&#xff09; ? 輕量級&#xff0c;無額外依賴&#xff0c;啟動速度快 ? 支持本地/網絡視頻、基礎播…

QTableView為例:Qt模型視圖委托(MVD)(Model-View-Delegate)

文章目錄 1. QT中的MVD模式2. View3. Model4. Delegate5. 以TableView為例 1. QT中的MVD模式 模型視圖委托&#xff08;MVD&#xff09;是Qt中特有的設計模式&#xff0c;類似MVC設計模式&#xff0c;將MVC設計模式中的Controller當做MVD中的Delegate&#xff0c;兩者的概念基…

uni-app總結3-項目新建運行調試

一、新建項目 通過HbuilderX新建 在點擊工具欄里的文件 -> 新建 -> 項目&#xff08;快捷鍵CtrlN&#xff0c;MacOS上是CMD N&#xff09;&#xff1a; 左測Tab選擇uni-app類型&#xff0c;輸入工程名&#xff0c;選擇模板&#xff0c;Vue版本選擇3&#xff0c;其他不…

LeetCode 每日一題打卡|若谷的刷題日記 4day--移動零

移動零 題目&#xff1a; 給定一個數組 nums&#xff0c;編寫一個函數將所有 0 移動到數組的末尾&#xff0c;同時保持非零元素的相對順序。 請注意 &#xff0c;必須在不復制數組的情況下原地對數組進行操作。 示例 1&#xff1a; 輸入: nums [0,1,0,3,12] 輸出: [1,3,1…

簡歷模板3——數據挖掘工程師5年經驗

姓名 / Your Name 數據挖掘工程師 | 5年經驗 | 推薦/畫像/反欺詐 &#x1f4de; 138-XXXX-XXXX | ?? your.emailexample.com | &#x1f310; github.com/yourname | &#x1f4cd; 北京 &#x1f3af; 個人簡介 / Summary 5年大廠數據挖掘工程經驗&#xff0c;碩士學歷&am…

Vue添加圖片作為水印

直接上代碼 把圖片作為水印 <div class"info-warp"><div class"image-container"><img src"https://img.shetu66.com/2023/06/28/1687920981963810.png" /><div class"watermark-layer"><imgv-for"…

Conda 常用命令大全:從入門到高效使用

Conda 常用命令大全&#xff1a;從入門到高效使用 Conda 是 Python 生態中最流行的環境管理工具之一&#xff0c;它不僅可以管理 Python 包&#xff0c;還能創建隔離的虛擬環境&#xff0c;適用于數據分析、機器學習、科學計算等場景。本文將介紹 Conda 的常用命令&#xff0c…