Vue2之生命周期

文章目錄

  • Vue生命周期
  • Vue生命周期鉤子
  • 生命周期鉤子小案例
    • 在created中獲取數據
    • 在mounted中獲取焦點

Vue生命周期

思考:什么時候可以發送初始化渲染請求?(越早越好)什么時候可以開始操作dom?(至少dom得渲染出來)

Vue生命周期:就是一個Vue實例從創建 到 銷毀 的整個過程。

生命周期四個階段:① 創建 ② 掛載 ③ 更新 ④ 銷毀

1.創建階段:創建響應式數據

2.掛載階段:渲染模板

3.更新階段:修改數據,更新視圖

4.銷毀階段:銷毀Vue實例

請添加圖片描述

Vue生命周期鉤子

Vue生命周期過程中,會自動運行一些函數,被稱為【生命周期鉤子】→ 讓開發者可以在【特定階段】運行自己的代碼

請添加圖片描述

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><h3>{{ title }}</h3><div><button @click="count--">-</button><span>{{ count }}</span><button @click="count++">+</button></div></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {count: 100,title: '計數器'},// 1. 創建階段(準備數據)beforeCreate () {console.log('beforeCreate 響應式數據準備好之前', this.count)},created () {console.log('created 響應式數據準備好之后', this.count)// this.數據名 = 請求回來的數據// 可以開始發送初始化渲染的請求了},// 2. 掛載階段(渲染模板)beforeMount () {console.log('beforeMount 模板渲染之前', document.querySelector('h3').innerHTML)},mounted () {console.log('mounted 模板渲染之后', document.querySelector('h3').innerHTML)// 可以開始操作dom了},// 3. 更新階段(修改數據 → 更新視圖)beforeUpdate () {console.log('beforeUpdate 數據修改了,視圖還沒更新', document.querySelector('span').innerHTML)},updated () {console.log('updated 數據修改了,視圖已經更新', document.querySelector('span').innerHTML)},// 4. 卸載階段beforeDestroy () {console.log('beforeDestroy, 卸載前')console.log('清除掉一些Vue以外的資源占用,定時器,延時器...')},destroyed () {console.log('destroyed,卸載后')}})</script>
</body>
</html>

生命周期鉤子小案例

在created中獲取數據

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;list-style: none;}.news {display: flex;height: 120px;width: 600px;margin: 0 auto;padding: 20px 0;cursor: pointer;}.news .left {flex: 1;display: flex;flex-direction: column;justify-content: space-between;padding-right: 10px;}.news .left .title {font-size: 20px;}.news .left .info {color: #999999;}.news .left .info span {margin-right: 20px;}.news .right {width: 160px;height: 120px;}.news .right img {width: 100%;height: 100%;object-fit: cover;}</style>
</head>
<body><div id="app"><ul><li v-for="(item, index) in list" :key="item.id" class="news"><div class="left"><div class="title">{{ item.title }}</div><div class="info"><span>{{ item.source }}</span><span>{{ item.time }}</span></div></div><div class="right"><img :src="item.img" alt=""></div></li></ul></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><script>// 接口地址:http://hmajax.itheima.net/api/news// 請求方式:getconst app = new Vue({el: '#app',data: {list: []},async created () {// 1. 發送請求獲取數據const res = await axios.get('http://hmajax.itheima.net/api/news')// 2. 更新到 list 中,用于頁面渲染 v-forthis.list = res.data.data}})</script>
</body>
</html>

在mounted中獲取焦點

<!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 class="search-box"><input type="text" v-model="words" id="inp"><button>搜索一下</button></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {words: ''},mounted () {document.querySelector('#inp').focus()}})</script>
</body></html>

剛剛進入頁面,等頁面加載完畢獲取輸入框的焦點。
在這里插入圖片描述

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

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

相關文章

Web 架構之多租戶(SaaS)系統設計要點

文章目錄 一、多租戶系統概述定義應用場景 二、設計要點1. 數據隔離獨立數據庫共享數據庫&#xff0c;獨立 Schema共享數據庫&#xff0c;共享 Schema數據訪問控制 2. 資源分配計算資源存儲資源 3. 租戶管理租戶注冊與注銷租戶信息管理 4. 安全與合規身份驗證與授權數據加密 三…

【Clickhouse系列】索引

目錄 1. 主鍵索引 (Primary Key Index) - 核心是稀疏索引 2. 跳數索引 (Data Skipping Indexes) - 二級索引 3. 關鍵總結與最佳實踐&#xff1a; ClickHouse的索引設計哲學與其他傳統OLTP數據庫&#xff08;如MySQL&#xff09;有顯著不同&#xff0c;它更側重于高效掃描大數…

445場周賽

第一題&#xff1a;檢查元素頻次是否為質數 給你一個整數數組 nums。 如果數組中任一元素的 頻次 是 質數&#xff0c;返回 true&#xff1b;否則&#xff0c;返回 false。 元素 x 的 頻次 是它在數組中出現的次數。 質數是一個大于 1 的自然數&#xff0c;并且只有兩個因數…

【SQL語法匯總】

讀音:MySQL —— 賣舌口 MySQL 實際上是DBMS軟件系統, 并非數據庫。通過系統管理維護數據庫,DBMS相當于用戶和數據庫之間的橋梁。 MySQL是一種關系型數據庫, 類似excel,用行和列的關系組織數據數據。 操作關系型數據庫的DBMS系統大多數用SQL來管理數據。 SQL是編程語言…

C++法則10:引用本身是一個“別名”(alias),一旦綁定到一個對象后,就不能再重新綁定到其他對象。

C法則10&#xff1a;引用本身是一個“別名”&#xff08;alias&#xff09;&#xff0c;一旦綁定到一個對象后&#xff0c;就不能再重新綁定到其他對象。 在C中&#xff0c;引用&#xff08;reference&#xff09;是一個已存在對象的別名。一旦引用被初始化綁定到一個對象&…

PHP 生成當月日期

一&#xff1a;按日期順序排列的數組&#xff0c;而不是按周分組的二維數組 /*日期生成 *day: 日期數字 *date: 完整的日期字符串 (YYYY-MM-DD) *is_current_month: 是否屬于當前月份 *is_prev_month: 是否是上個月的日期 *is_next_month: 是否是下個月的日期 *is_today: 是否是…

vue3+elementPlus實現無縫滾動表格封裝

vue3+elementPlus+css+js 模擬liMarquee插件,實現無限滾動效果 功能:1、表格數據大于一定數量之后,開始向上滾動 2、當鼠標移入的時候,動畫停止,鼠標移出,繼續動畫 3、滾動動畫的速度可以自定義 4、表格的高度固定 5、向上滾動時,無限滾動,不存在卡頓 <template>…

AI賦能企業內訓:2025智能化教育培訓系統源碼開發全解析

從線下集中授課到線上碎片化學習&#xff0c;從被動灌輸到主動交互&#xff0c;越來越多企業開始關注“企業內訓系統”的智能化升級。而這一切的背后&#xff0c;離不開AI技術的深度賦能。 筆者認為&#xff0c;2025年將是企業內訓系統“從信息化走向智能化”的關鍵拐點。本篇…

旅游安全急救實訓室:構建旅游行業安全人才培養新范式

在文旅產業蓬勃發展與安全應急需求日益凸顯的背景下&#xff0c;旅游安全急救能力已成為從業者的核心素養之一。當前&#xff0c;旅游市場突發狀況頻發&#xff0c;如景區意外事故、游客突發疾病等&#xff0c;對從業人員的急救技能提出了更高要求——既要掌握基礎急救操作&…

網絡編程及原理(六):三次握手、四次揮手

目錄 一 . TCP 的核心機制&#xff1a;連接管理 二 . 三次握手&#xff1a;建立連接 &#xff08;1&#xff09; 三次握手的意義 &#xff08;1.1&#xff09;初步驗證通信鏈路是否流暢 &#xff08;1.2&#xff09;確認通信雙方各自的發送、接受能力是否正常 &…

【LLaMA 3實戰】2、LLaMA 3對話能力全解析:從架構革新到多智能體實戰指南

引言:LLaMA 3對話能力的革命性突破 當Meta發布LLaMA 3時,其對話能力的躍升重新定義了開源大模型的邊界。這款擁有128K上下文窗口的開源模型,不僅在MT-Bench評測中超越GPT-3.5,更通過分組查詢注意力(GQA)等架構創新,實現了推理速度30%的提升。 本文將從底層架構到應用實戰…

面試題-在ts中類型轉換的方法

在 TypeScript 中&#xff0c;類型轉換主要分為 類型斷言&#xff08;Type Assertion&#xff09;、類型守衛&#xff08;Type Guard&#xff09; 和 類型兼容轉換 三種方式。以下是詳細分類和示例&#xff1a; 一、類型斷言&#xff08;Type Assertion&#xff09; 強制編譯…

IIS配置SSL證書

公司的一個項目使用IIS部署的網站&#xff0c;現在需要更新SSL證書。為了下次方便&#xff0c;在此做記錄整理。 以下第一部分是查網絡AI查詢到的資料&#xff0c;解決了我心中對雙擊和從IIS導入有什么不同的疑惑。第二部分是我在這次實際操作過程中的截圖。 一.證書安裝方式 …

K8s初始化容器與邊車容器比對

Kubernetes 中的初始化容器和邊車容器 Kubernetes 作為一個開源容器編排平臺&#xff0c;引入了強大的概念來管理和增強 Pod 內容器的功能。其中兩個概念是初始化容器&#xff08;Init Containers&#xff09;和邊車容器&#xff08;Sidecar Containers&#xff09;。盡管這兩…

無線Debugger攻防全解:原理剖析與突破之道

引言?? 在Web安全防護體系中&#xff0c;反調試技術已成為對抗爬蟲和分析的關鍵武器。2023年OWASP報告顯示&#xff0c;Top 1000網站中92%部署了反調試機制&#xff0c;其中??無線Debugger技術??&#xff08;也稱為無限Debug&#xff09;因其難以破解的特性&#xff0c;…

Eslint自定義規則使用

文章目錄 前言場景設定&#xff1a;維護代碼分層&#xff0c;禁止“跨級調用”實現步驟&#xff1a;從零到一&#xff0c;創建你的第一條自定義規則**第 1 步&#xff1a;創建規則文件****第 2 步&#xff1a;在 eslint.config.mjs 中注冊并啟用你的規則** 驗證成果 前言 設計…

深入剖析Spring Cloud Gateway,自定義過濾器+斷言組合成攔截器鏈實現Token認證

一、Spring Cloud Gateway網關的整體架構 Spring Cloud Gateway 是 Spring Cloud 官方推出的網關解決方案&#xff0c;旨在替代 Netflix Zuul 1.x。其底層基于 Spring WebFlux Reactor 模型 構建&#xff0c;具備響應式、異步非阻塞的高性能特點。 1. 整體架構圖 ----------…

VMware Workstation Pro下Centos 7.9 安裝

背景系統安裝方案1、VMware安裝? ? 1.1、下載? ? 1.2、安裝 2、Centos 7.9 安裝? ? 2.1 、Centos7.9 iso 下載? ? 2.2、使用VMware 安裝? ? 2.2.1、VMware配置虛擬機? ? 2.2.2、Linux安裝 結語 背景 本文所在專欄的所有文章基于Centos7.9系統來演示&#xff0c;系…

我做個一個APP叫【圖影工具箱】:一站式解決視頻提取音頻和加水印的鴻蒙神器

在數字內容創作和日常使用手機的過程中&#xff0c;提取視頻音頻、處理圖片和視頻水印是一大需求。許多人在尋找合適的軟件時&#xff0c;往往試遍各種工具卻仍無法滿足需求。所以&#xff0c;我做了一款應用 —— 圖影工具箱&#xff0c;一站式解決這些令人頭疼的問題。 圖影…

【StarRocks系列】查詢語句執行全流程

目錄 StarRocks 查詢數據流程詳解 1. 提交查詢語句 2. FE 解析與優化 3. 選擇 BE 節點與數據路由 4. BE 數據讀取與計算 5. 結果返回 關鍵優化點總結 示例流程 流程圖 StarRocks 查詢數據流程詳解 StarRocks 采用分布式 MPP 架構&#xff0c;查詢流程涉及 FE&#xff…