VUE2生命周期頁面加載順序

使用 Vue CLI 4.5 運行 vue create myvue 創建項目,并通過 npm run serve 運行后,會生成一個標準的 Vue 項目目錄結構。以下是生成目錄的詳細說明,以及運行 localhost:8080 后 Vue 頁面的加載順序。


1. 生成目錄結構

運行 vue create myvue 后,生成的項目目錄結構如下:

myvue/
├── node_modules/          # 項目依賴包
├── public/                # 靜態資源目錄(不會被Webpack處理)
│   ├── index.html         # 項目入口HTML文件
│   └── favicon.ico        # 網站圖標
├── src/                   # 項目源碼目錄
│   ├── assets/            # 靜態資源(圖片、字體等,會被Webpack處理)
│   ├── components/        # Vue組件
│   ├── App.vue            # 根組件
│   ├── main.js            # 項目入口文件
│   └── router/            # Vue Router 路由配置(如果選擇了路由)
│   └── store/             # Vuex 狀態管理(如果選擇了Vuex)
├── .gitignore             # Git忽略文件配置
├── babel.config.js        # Babel 配置文件
├── package.json           # 項目依賴和腳本配置
├── package-lock.json      # 依賴版本鎖定文件
├── README.md              # 項目說明文件
└── vue.config.js          # Vue CLI 配置文件(可選)

2. 運行 npm run serve 后訪問 localhost:8080

運行 npm run serve 后,Vue CLI 會啟動一個開發服務器,默認地址為 http://localhost:8080。訪問該地址時,Vue 頁面的加載順序如下:


3. Vue 頁面加載順序

以下是訪問 localhost:8080 后,Vue 頁面的加載順序:

(1)加載 public/index.html
  • 瀏覽器首先加載 public/index.html 文件。
  • 該文件是 Vue 應用的入口 HTML 文件,包含一個 <div id="app"></div> 容器,用于掛載 Vue 應用。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>MyVue</title><link rel="icon" href="<%= BASE_URL %>favicon.ico">
</head>
<body><div id="app"></div><!-- 構建后的腳本會被自動注入到這里 -->
</body>
</html>

(2)加載并執行 src/main.js
  • main.js 是 Vue 應用的入口 JavaScript 文件。
  • 它初始化 Vue 實例,并將根組件 App.vue 掛載到 index.html 中的 <div id="app"></div>
import Vue from 'vue'
import App from './App.vue'
import router from './router' // 如果選擇了路由
import store from './store'   // 如果選擇了VuexVue.config.productionTip = falsenew Vue({router, // 如果選擇了路由store,  // 如果選擇了Vuexrender: h => h(App)
}).$mount('#app')

(3)加載并渲染 src/App.vue
  • App.vue 是 Vue 應用的根組件。
  • 它通常包含一個 <router-view>,用于渲染路由匹配的組件。
<template><div id="app"><router-view></router-view> <!-- 路由匹配的組件會渲染到這里 --></div>
</template><script>
export default {name: 'App'
}
</script><style>
/* 全局樣式 */
</style>

(4)加載并渲染路由組件
  • 如果項目中配置了 Vue Router,則會根據路由配置加載對應的組件。
  • 默認情況下,Vue CLI 會生成一個 src/views/Home.vue 作為首頁組件。
// src/router/index.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'Vue.use(VueRouter)const routes = [{path: '/',name: 'Home',component: Home},{path: '/about',name: 'About',component: () => import('../views/About.vue') // 懶加載}
]const router = new VueRouter({mode: 'history',routes
})export default router
  • 訪問 localhost:8080/ 時,Home.vue 組件會被渲染到 <router-view> 中。

(5)組件生命周期鉤子執行
  • 在組件加載和渲染過程中,Vue 的生命周期鉤子會按順序執行:
    1. beforeCreate:組件實例初始化之前。
    2. created:組件實例創建完成,數據已初始化。
    3. beforeMount:組件掛載到 DOM 之前。
    4. mounted:組件掛載到 DOM 之后,此時可以訪問 DOM 元素。

4. 總結

訪問 localhost:8080 后,Vue 頁面的加載順序如下:

  1. 加載 public/index.html
  2. 加載并執行 src/main.js,初始化 Vue 實例。
  3. 加載并渲染根組件 src/App.vue
  4. 根據路由配置加載并渲染對應的路由組件(如 src/views/Home.vue)。
  5. 執行組件的生命周期鉤子(beforeCreate -> created -> beforeMount -> mounted)。

5. 注意事項

  • 如果使用了 異步組件懶加載,相關組件會在需要時動態加載。
  • 如果使用了 Vuex,狀態管理會在 main.js 中初始化,并在組件中通過 this.$store 訪問。
  • 開發模式下,Vue CLI 會啟用熱重載(Hot Module Replacement,HMR),修改代碼后頁面會自動更新。

通過以上步驟,Vue 應用完成了從入口文件到組件渲染的完整加載過程。

是的,Vue 項目可以進行單步調試。Vue 是基于 JavaScript 的框架,因此可以使用瀏覽器的開發者工具或 IDE 的調試功能來實現單步調試。以下是幾種常見的調試方法:


VUE調試

1. 使用瀏覽器開發者工具調試

現代瀏覽器(如 Chrome、Firefox、Edge)都提供了強大的開發者工具,支持單步調試 JavaScript 代碼。

步驟:
  1. 打開開發者工具

    • 在瀏覽器中按 F12Ctrl + Shift + I(Windows/Linux)或 Cmd + Option + I(Mac)。
    • 切換到 Sources 面板。
  2. 找到 Vue 組件代碼

    • 在 Sources 面板中,找到 webpack:// 目錄,這里會顯示 Vue 項目的源碼。
    • 如果是 Vue CLI 創建的項目,源碼會被映射到 src/ 目錄下。
  3. 設置斷點

    • 在代碼的行號上點擊,設置斷點。
    • 刷新頁面或觸發相應操作,代碼執行到斷點時會暫停。
  4. 單步調試

    • 使用調試工具欄中的按鈕進行單步調試:
      • Step Over (F10):逐行執行代碼。
      • Step Into (F11):進入函數內部。
      • Step Out (Shift + F11):跳出當前函數。
      • Resume (F8):繼續執行到下一個斷點。
  5. 檢查變量和調用棧

    • 在右側的 Scope 面板中查看當前作用域的變量。
    • Call Stack 面板中查看函數調用棧。

2. 使用 VS Code 調試 Vue 項目

VS Code 是一款強大的代碼編輯器,支持直接調試 Vue 項目。

步驟:
  1. 安裝 Debugger for Chrome 插件

    • 在 VS Code 的擴展商店中搜索并安裝 Debugger for Chrome
  2. 配置調試文件

    • 在項目根目錄下創建 .vscode/launch.json 文件,并添加以下配置:
      {"version": "0.2.0","configurations": [{"type": "chrome","request": "launch","name": "Debug Vue App","url": "http://localhost:8080", // 確保與開發服務器地址一致"webRoot": "${workspaceFolder}/src","breakOnLoad": true,"sourceMapPathOverrides": {"webpack:///src/*": "${webRoot}/*"}}]
      }
      
  3. 啟動調試

    • 在 VS Code 中按 F5 啟動調試。
    • 瀏覽器會自動打開,并連接到 VS Code 的調試器。
  4. 設置斷點

    • 在 VS Code 中打開 Vue 組件文件(如 src/App.vue),在代碼行號左側點擊設置斷點。
  5. 單步調試

    • 使用 VS Code 的調試工具欄進行單步調試:
      • Step Over (F10):逐行執行代碼。
      • Step Into (F11):進入函數內部。
      • Step Out (Shift + F11):跳出當前函數。
      • Continue (F5):繼續執行到下一個斷點。

3. 使用 Vue Devtools 調試

Vue Devtools 是 Vue 官方提供的瀏覽器擴展,專門用于調試 Vue 應用。

步驟:
  1. 安裝 Vue Devtools

    • 在 Chrome 或 Firefox 的擴展商店中搜索 Vue Devtools 并安裝。
  2. 打開 Vue Devtools

    • 在瀏覽器中按 F12 打開開發者工具,切換到 Vue 選項卡。
  3. 檢查組件狀態

    • 在 Vue Devtools 中,可以查看組件的層次結構、props、data、computed 屬性等。
    • 支持實時修改組件的狀態并查看效果。
  4. 事件調試

    • Events 面板中,可以查看組件觸發的事件及其參數。

4. 調試技巧

  • 調試異步代碼
    • async/awaitPromise 代碼中設置斷點,可以觀察異步操作的執行順序。
  • 調試生命周期鉤子
    • createdmounted 等生命周期鉤子中設置斷點,觀察組件的初始化過程。
  • 調試 Vuex
    • 在 Vuex 的 mutationsactions 中設置斷點,觀察狀態的變化。

5. 注意事項

  • Source Map
    • 確保 Vue 項目的 Source Map 已啟用(默認情況下,Vue CLI 會生成 Source Map)。
    • 如果 Source Map 未啟用,調試時可能無法定位到源碼。
  • 生產環境調試
    • 生產環境下,代碼通常會被壓縮和混淆,調試起來比較困難。建議在開發環境下調試。

總結

Vue 項目可以通過以下方式進行單步調試:

  1. 瀏覽器開發者工具:直接調試運行中的 Vue 應用。
  2. VS Code:通過 Debugger for Chrome 插件調試 Vue 項目。
  3. Vue Devtools:專門用于調試 Vue 組件和狀態。

通過合理使用這些工具,可以高效地調試 Vue 應用,定位和解決問題。

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

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

相關文章

SV基礎(一):System Verilog與Verilog核心區別詳解

文章目錄 **1. 設計增強功能****數據類型擴展****接口(Interface)****2. 驗證功能增強****斷言(Assertions)****約束隨機測試****功能覆蓋率****3. 面向對象編程(OOP)****4. 測試平臺(Testbench)改進****5. 語法簡化****6. 其他關鍵區別****學習建議**System Verilog 是…

如何用 Python 進行機器學習

文章目錄 前言1. 環境準備Python安裝選擇Python開發環境安裝必要庫 2. 數據收集與加載3. 數據探索與可視化4. 數據預處理5. 模型選擇與訓練6. 模型評估7. 模型調優8. 模型部署 前言 使用 Python 進行機器學習一般可以按照以下步驟進行&#xff0c;下面將詳細介紹每個步驟及對應…

2021-05-27 C++找出矩陣數組中值最大的元素和它在數組中的位置

緣由各位大佬&#xff0c;這個應該怎么做_編程語言-CSDN問答 void 找出數組中值最大的元素和它在數組中的位置() {//緣由https://ask.csdn.net/questions/7436585?spm1005.2025.3001.5141int a[4][4], aa 0, aaa 0, d 0, x 0;while (aa < 4 && aaa < 4)std…

在 IntelliJ IDEA 中啟動多個注冊到 Nacos 的服務

使用場景&#xff1a;邊改代碼&#xff0c;邊和前端聯調。 在微服務架構中&#xff0c;服務注冊與發現是核心功能之一。Nacos 作為一款流行的開源服務注冊與配置管理工具&#xff0c;被廣泛應用于微服務架構中。本文將介紹如何在 IntelliJ IDEA 中配置并啟動多個注冊到 Nacos …

DeepSeek開源周Day2:DeepEP - 專為 MoE 模型設計的超高效 GPU 通信庫

項目地址&#xff1a;https://github.com/deepseek-ai/DeepEP 開源日歷&#xff1a;2025-02-24起 每日9AM(北京時間)更新&#xff0c;持續五天 (2/5)&#xff01; ? ? 引言 在大模型訓練中&#xff0c;混合專家模型&#xff08;Mixture-of-Experts, MoE&#xff09;因其動…

HTTP學習——————(四)TLS等加密算法

前文學習&#xff1a; 一、二、三 學習來源網站 &#xff1a; 極客時間 TLS 目的&#xff1a;身份驗證、保密性、完整性 解決問題&#xff1a; Record記錄協議——對稱加密 Handshake握手協議———1.驗證通訊雙方身份 2.交換加解密安全套件 3.協商加密參數 有密鑰交換算法…

FastExcel vs EasyExcel vs Apache POI:三者的全面對比分析

一、核心定位與歷史沿革 Apache POI&#xff08;1990s-&#xff09; 作為Java生態中最古老的Excel處理庫&#xff0c;提供對.xls/.xlsx文件的全功能支持。其核心價值在于對Excel規范的完整實現&#xff0c;包括單元格樣式、公式計算、圖表操作等深度功能。但存在內存消耗大&…

辛格迪客戶案例 | 鼎康生物電子合約系統(eSign)項目

01 案例企業 鼎康(武漢)生物醫藥有限公司于2013年06月19日成立 &#xff0c;是一家總部位于湖北武漢的CDMO公司&#xff0c;堅持以客戶為中心&#xff0c;以及時、經濟和高質量為服務導向。鼎康生物擁有先進的150,000平方英尺的生產廠房&#xff0c;生產設施位于中國武漢的Bio…

multer 依賴詳解

multer 是一個用于處理 multipart/form-data 類型表單數據的 Node.js 中間件&#xff0c;主要用于文件上傳。它基于 busboy 構建&#xff0c;使用起來非常方便。 一、安裝 npm install multer 二、基本使用 const express require("express");const multer req…

點云配準技術的演進與前沿探索:從傳統算法到深度學習融合(4)

4、點云配準面臨的挑戰與應對策略 4.1 點云配準面臨的主要挑戰 在點云配準的實際應用中&#xff0c;盡管已經取得了顯著的研究成果&#xff0c;但仍然面臨著諸多復雜而嚴峻的挑戰&#xff0c;這些挑戰嚴重制約了點云配準技術在更多領域的廣泛應用和深入發展。 在自動駕駛場景…

PostgreSQL10 物理流復制實戰:構建高可用數據庫架構!

背景 PostgreSQL 10 在高可用架構中提供了物理復制&#xff0c;也稱為流復制&#xff08;Streaming Replication&#xff09;&#xff0c;用于實現實例級別的數據同步。PostgreSQL 復制機制主要包括物理復制和邏輯復制&#xff1a;物理復制依賴 WAL 日志進行物理塊級別的同步&…

?算法OJ?位操作實戰【計數】(C++ 實現)

191. Number of 1 Bits Given a positive integer n, write a function that returns the number of set bits in its binary representation (also known as the Hamming weight). int hammingWeight(uint32_t n) {int count 0;while (n) {count n & 1; // 檢查最低位…

從二維隨機變量到多維隨機變量

二維隨機變量 設 X X X和 Y Y Y是定義在同一樣本空間 Ω \varOmega Ω上的兩個隨機變量&#xff0c;稱由它們組成的向量 ( X , Y ) (X, Y) (X,Y)為二維隨機變量&#xff0c;亦稱為二維隨機向量&#xff0c;其中稱 X X X和 Y Y Y是二維隨機變量的分量。 采用多個隨機變量去描述…

RabbitMQ系列(一)架構解析

RabbitMQ 架構解析 RabbitMQ 是一個基于 AMQP 協議的開源消息中間件&#xff0c;其核心架構通過多組件協作實現高效、可靠的消息傳遞。以下是其核心組件與協作流程的詳細說明&#xff1a; 一、核心組件與功能 Broker&#xff08;消息代理服務器&#xff09; RabbitMQ 服務端核…

Ubuntu 下 nginx-1.24.0 源碼分析 - ngx_list_init

ngx_list_init 定義在 src\core\ngx_list.h static ngx_inline ngx_int_t ngx_list_init(ngx_list_t *list, ngx_pool_t *pool, ngx_uint_t n, size_t size) {list->part.elts ngx_palloc(pool, n * size);if (list->part.elts NULL) {return NGX_ERROR;}list->par…

Linux切換Python版本

1、更新apt sudo apt update2、查詢python安裝路徑 which python 或者which python33、查詢安裝版本 # 查看所有以 "python" 開頭的命令&#xff08;包括版本號&#xff09; ls -l 安裝路徑* 例如 ls -l /usr/bin/python*4、修改軟連接 udo unlink /usr/bin/pyt…

Spring Cloud之注冊中心之Nacos的使用

目錄 Naacos 服務注冊/服務發現 引?Spring Cloud Alibaba依賴 引入Nacos依賴 引入Load Balance依賴 配置Nacos地址 服務端調用 啟動服務 Naacos Nacos是Spring Cloud Alibaba的組件, Spring Cloud Alibaba遵循Spring Cloud中定義的服務注冊, 服務發現規范. 因此使?Na…

使用通義萬相Wan2.1進行視頻生成

使用通義萬相Wan2.1進行視頻生成 源代碼準備運行環境準備創建Python虛擬環境并激活安裝依賴包 模型下載生成視頻官網的視頻生成例子簡單描述場景視頻生成示例詳細描述場景視頻生成示例 最近通義萬相開源了其視頻生成模型。模型有兩個版本&#xff0c;一個是1.3B的&#xff0c;一…

鴻蒙HarmonyOS 開發簡介

鴻蒙開發入門教程 一、技術簡介 鴻蒙操作系統&#xff08;HarmonyOS&#xff09;是面向萬物互聯時代的全場景分布式操作系統&#xff0c;具備分布式軟總線、分布式數據管理、分布式任務調度等核心能力&#xff0c;能讓設備間實現無縫連接與協同&#xff0c;為用戶提供統一、流…

docker和containerd從TLS harbor拉取鏡像

私有鏡像倉庫配置了自簽名證書&#xff0c;https訪問&#xff0c;好處是不需要處理免費證書和付費證書帶來的證書文件變更&#xff0c;證書文件變更后需要重啟服務&#xff0c;自簽名證書需要將一套客戶端證書存放在/etc/docker/cert.d目錄下&#xff0c;或者/etc/containerd/c…