vite常見面試問題

一、Vite 核心原理

1. Vite 為什么比 Webpack 快?

答案:
Vite 的核心優勢在于開發環境生產環境的雙重優化:

  • 開發環境
    • 基于原生 ESM(ES Modules):瀏覽器直接加載 ES 模塊,無需打包,啟動時間極短(毫秒級)。
    • 按需編譯:僅編譯當前頁面所需的模塊,而非整個項目。
    • 預構建依賴:使用 esbuildnode_modules 進行預編譯(比 Babel 快 10-100 倍)。
  • 生產環境
    • 使用 Rollup 進行打包,輸出更優化、更精簡的代碼。

對比 Webpack

特性ViteWebpack
啟動毫秒級(按需編譯)秒級(全量打包)
HMR極快(基于 ESM)較慢(依賴重建依賴圖)
構建Rollup(高效 Tree Shaking)自研打包機制

2. Vite 的熱更新(HMR)是如何工作的?

答案:
Vite 的 HMR(Hot Module Replacement)實現機制:

  1. 基于 WebSocket:Vite 服務器與瀏覽器建立長連接,監聽文件變化。
  2. 精準更新:僅重新編譯修改的文件,并通過 ESM 動態替換。
  3. Vue/React 深度優化
    • Vue:單文件組件(SFC)可單獨更新 <template><script><style>
    • React:支持 Fast Refresh,保持組件狀態。

代碼示例(手動 HMR API)

if (import.meta.hot) {import.meta.hot.accept('./module.js', (newModule) => {console.log('模塊更新:', newModule);});
}

二、Vite 配置與優化

1. 如何配置多環境變量?

答案:
Vite 使用 .env 文件管理環境變量:

.env            # 全局默認
.env.development # 開發環境
.env.production  # 生產環境

配置方式

// vite.config.js
import { defineConfig, loadEnv } from 'vite';export default defineConfig((

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

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

相關文章

Screen 連接遠程服務器(Ubuntu)

連接 1. 安裝screen 默認預安裝&#xff0c;可以通過命令查看&#xff1a; screen --version 若未安裝&#xff1a; # Ubuntu/Debian sudo apt-get install screen 2. 本機連接遠程服務器 ssh root192.168.x.x 在遠程服務器中打開screen&#xff1a; screen -S <nam…

Flutter GridView網格組件

目錄 常用屬性 GridView使用配置 GridView.count使用 GridView.extent使用 GridView.count Container 實現列表 GridView.extent Container 實現列表 GridView.builder使用 GridView網格布局在實際項目中用的也是非常多的&#xff0c;當我們想讓可以滾動的元素使用矩陣…

Jenkins實踐(8):服務器A通過SSH調用服務器B執行Python自動化腳本

Jenkins實踐(8):服務器A通過SSH調用服務器B執行Python自動化腳本 1、需求: 1、Jenkins服務器在74上,Python腳本在196服務器上 2、需要在服務器74的Jenkins上調用196上的腳本執行Python自動化測試 2、操作步驟 第一步:Linux Centos7配置SSH免密登錄 Linux Centos7配置S…

C#二維碼:利用 ThoughtWorks.QRCode 庫實現二維碼生成與解析

C#二維碼&#xff1a;利用 ThoughtWorks.QRCode 庫實現二維碼生成與解析 在當今數字化信息交互頻繁的時代&#xff0c;二維碼憑借其信息容量大、容錯能力強、易識別等特點&#xff0c;廣泛應用于各個領域。從移動支付、產品溯源到活動簽到&#xff0c;二維碼無處不在。在 C# 開…

【Java Web】速通JavaScript

參考筆記:JavaWeb 速通JavaScript_javascript 速通-CSDN博客 目錄 一、JavaScript快速入門 1. 基本介紹 2. JavaScript特點 3. JavaScript的引入方式(重要) 3.1 寫在script標簽中 ?????3.2 以外部文件方式引入 二、JS的數據類型 1. 變量 2. 常用數據類型 3.特殊值 三、…

Python打卡訓練營-Day13-不平衡數據的處理

浙大疏錦行 知識點&#xff1a; 不平衡數據集的處理策略&#xff1a;過采樣、修改權重、修改閾值交叉驗證代碼 過采樣 過采樣一般包含2種做法&#xff1a;隨機采樣和SMOTE 過采樣是把少的類別補充和多的類別一樣多&#xff0c;欠采樣是把多的類別減少和少的類別一樣 一般都是缺…

Mac OS 使用說明

Mac 的啟動組合鍵 了解可通過在啟動時按住一個或多個按鍵來訪問的 Mac 功能和工具。 若要使用這些組合鍵中的任何一個&#xff0c;請在按下電源按鈕以開啟 Mac 后或在 Mac 開始重新啟動后&#xff0c;立即按住相應按鍵。請一直按住&#xff0c;直至電腦出現對應的行為。 !!!上…

LoadRunner 是什么

LoadRunner 是一款由 Micro Focus&#xff08;原惠普企業軟件部門&#xff09;開發的性能測試工具&#xff0c;廣泛應用于軟件、應用程序和系統的 負載測試、壓力測試 和 性能分析。它通過模擬大量用戶并發操作&#xff0c;幫助測試人員評估系統在高負載下的性能、穩定性和可擴…

RISC-V PMA、PMP機制深入分析

1 PMA PMA&#xff08;Physical Memory Attributes&#xff09;&#xff0c;物理內存屬性&#xff0c;顧名思義就是用來設置物理內存屬性的&#xff0c;但這里說“設置”&#xff0c;并不合理&#xff0c;因為一般情況下各存儲的屬性&#xff0c;在芯片設計時就固定了&#xf…

SQL正則表達式總結

這里寫目錄標題 一、元字符二、正則表達函數1、 regexp_like(x,pattern[,match_option])2、 regexp_instr(x,pattern[,start[,occurrence[,return_option[, match_option]]]]) 3、 REGEXP_SUBSTR(x,pattern[,start[,occurrence[, match_option]]]) 4、 REGEXP_REPLACE(x,patter…

Shortest path 代碼

Project https://graphics.cs.utah.edu/research/projects/shortest-path-to-boundary/ Build and Debug Fork:(在Win10上&#xff09; https://github.com/chunleili/Shortest-Path-to-Boundary-for-Self-Intersecting-Meshes commit hash d3160168d2b6a58188d12e6cd959da…

AMBA總線家族成員

在AMBA總線協議體系中&#xff0c;AXI4雖然是最新且性能最強的總線協議&#xff0c;但AHB和APB仍然被廣泛使用&#xff0c;主要原因在于??場景適配性、資源優化和系統兼容性??的綜合考量。以下是具體分析&#xff1a; AMBA 1?&#xff1a;僅包含ASB和APB1。?AMBA 2?&am…

前端高頻面試題1:HTML/CSS/瀏覽器/計算機網絡

目錄 1.為什么會出現margin塌陷&#xff1f; 2.如何解決margin塌陷&#xff1f; 3.HTML5有哪些新特性&#xff1f; 4.常見的語義化標簽有哪些&#xff1f;語義化標簽的好處&#xff1f; 5.使用css和js做動畫有何優劣 6.如何實現文本超出展示省略號 7.deep在css中存在嗎&…

基于 Spring Boot + Vue 的墻繪產品展示交易平臺設計與實現【含源碼+文檔】

項目簡介 本系統是一個基于 Spring Boot Vue 技術棧開發的墻繪產品展示交易平臺&#xff0c;旨在提供一個高效、便捷的在線商城平臺&#xff0c;方便用戶瀏覽、選購墻繪產品&#xff0c;并提供管理員進行商品管理、訂單管理等功能。系統采用了前后端分離的架構&#xff0c;前…

STM32F103_Bootloader程序開發05 - Keil修改生成文件的路徑與文件名,自動生成bin格式文件

導言 通過Keil的相關配置&#xff0c;可以靈活地修改輸出文件的保存路徑及文件名稱。在Bootloader程序開發過程中&#xff0c;合理配置輸出文件對于后續固件升級和自動化腳本處理至關重要。完成路徑和文件名配置后&#xff0c;還可以借助Keil自帶的fromelf.exe工具&#xff0c;…

力扣每日一題2025.5.28——題號:3372.連接兩棵樹后最大目標節點數目 |

目錄 題目鏈接&#xff1a;3372. 連接兩棵樹后最大目標節點數目 I - 力扣&#xff08;LeetCode&#xff09; 題目描述 解法一&#xff1a; Java寫法&#xff1a; C寫法&#xff1a; 運行時間 時間復雜度和空間復雜度 總結 題目鏈接&#xff1a;3372. 連接兩棵樹后最大目…

華為防火墻NAPT配置

1.實驗拓撲 2.實驗配置 [SW1]dis cu # sysname SW1 # vlan batch 10 20 # interface Vlanif10ip address 192.168.10.254 255.255.255.0 # interface Vlanif20ip address 192.168.20.253 255.255.255.0 # interface GigabitEthernet0/0/1port link-type accessport default vl…

java導入excel

這樣讀取excel時&#xff0c;得到的是結果值&#xff0c;而不是單元格的公式 import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil;InputStream inputStream file.getInputStream(); ExcelReader reader ExcelUtil.getReader(inputStream, 1); L…

stm32cube ide如何生成LL庫工程

在 STM32Cube IDE 里生成使用 LL&#xff08;Low Layer&#xff09;庫的工程&#xff0c;可按以下步驟操作&#xff1a; 1. 新建 STM32 工程 啟動 STM32Cube IDE&#xff0c;選擇File→New→STM32 Project。依據需求挑選目標 MCU 型號&#xff0c;接著點擊Next。 2. 配置工程…

阿里通義實驗室突破空間音頻新紀元!OmniAudio讓360°全景視頻“聲”臨其境

在虛擬現實和沉浸式娛樂快速發展的今天&#xff0c;視覺體驗已經遠遠不夠&#xff0c;聲音的沉浸感成為打動用戶的關鍵。然而&#xff0c;傳統的視頻配音技術往往停留在“平面”的音頻層面&#xff0c;難以提供真正的空間感。阿里巴巴通義實驗室&#xff08;Qwen Lab&#xff0…