react快速開始(四)-之Vite 還是 (Create React App) CRA? 用Vite創建項目

文章目錄

  • react快速開始(四)-之Vite 還是 (Create React App) CRA? 用Vite創建項目
    • 背景
    • Vite 和 (Create React App) CRA
    • Vite?
      • Vite 是否支持 TypeScript?
    • 用Vite創建react項目
    • 參考

react快速開始(四)-之Vite 還是 (Create React App) CRA? 用Vite創建項目

背景

在React文檔中,對于構建新的React應用,首推的方式是CRA(create-react-app)。

CRA推出于2016年,彼時還沒有成體系的React腳手架工具供大家使用,再加上這是官方工具,一經推出就受到了歡迎。截止當前,CRA倉庫已經收獲快10wstar。

絕大多數項目都依賴于 Create React App,主要是因為這個特定的解決方案是由最流行的前端應用程序開發庫 React 的創建者推動的。CRA 是 React 文檔中的默認選擇,對于許多開發人員來說,它仍然是默認選項。

在構建 React 應用程序(初學者、中級甚至專家)時,創建 React 應用程序 (CRA) 長期以來一直是所有技能水平的許多開發人員的首選工具。但是,它確實有一些明顯的缺點,即速度和性能。

此外,CRA對一些流行工具的支持也不是很好,比如在TailwindCSS文檔中就不推薦使用CRA。

Create React App(下文簡稱CRA)和Vite(發音為veet,是法語單詞,意為“快速”)都是幫助你創建React應用的工具。

Vite 和 (Create React App) CRA

為什么我們使用 Vite 而不是 Create React App
參考URL: https://makimo.com/blog/why-we-use-vite-instead-of-create-react-app/
create-react-app vs vite
參考URL: https://npmtrends.com/create-react-app-vs-vite

npm trends:
在這里插入圖片描述
使用Vite,你會收獲以下好處:

  • 開發速度顯著提升,讓你可以更有效率地進行開發。
  • 構建體積更小,讓你的應用程序加載更快。
  • 開發體驗更好,讓你可以更輕松愉快地進行開發。

最近(2024年),國外網友 t3dotgg 建議 React 官方把文檔中關于建議使用 Create React App 來創建新項目更換為建議使用 Vite 來創建新項目。

Vite?

Vite官方中文文檔: https://cn.vitejs.dev/guide/why.html

Vite將一個應用分為兩個部分:依賴和源碼。

  • 依賴
    依賴在開發過程中,基本不會變動。Vite使用esbuild(基于Go語言,比傳統JS要快10-100倍)預打包了依賴,而且由于依賴變動極少,所以會被緩存起來以節省大量時間。

  • 源碼
    源碼采用了ESM(ECMAScript modules)作為模塊體系。好處是無需打包,按需加載,所以速度快的難以置信。

Esbuild是一個用 Go 編寫的 Javascript 構建工具,它預先打包依賴項的速度比基于 Javascript 的打包工具快 10-100 倍。

Vite 是一款新一代的前端構建工具,專為閃電般的開發速度和高效構建而設計。它采用了一種創新性的開發模式,與傳統的 webpack 相比,顯著提升了開發和構建的效率。

Vite速度快且配置簡單!Vite 采用了創新的開發模式和更有效的構建算法,提供更快的開發速度和更小的構建體積

Vite 是否支持 TypeScript?

是的,Vite 完全支持 TypeScript,你可以使用 TypeScript 構建你的 React 應用程序。

用Vite創建react項目

為創建一個 Vite應用程序,打開終端并導航到要保存 Vite 程序的文件夾。然后運行這個命令:

npm create vite@latest
npm create vite 項目名稱

設置 Project name、Select a framework(選擇框架)選react

√ Project name: ... web3-todo-list
? Select a framework: ? - Use arrow-keys. Return to submit.
>   VanillaVueReactPreactLit
√ Select a variant: ? TypeScriptScaffolding project in D:\web3\openbuild\Web3-Frontend-Bootcamp\members\dockershe\task1\web3-todo-list...    Done. Now run:cd web3-todo-listnpm installnpm run dev

參考

React為什么不將Vite作為默認推薦?
參考URL: https://cloud.tencent.com/developer/article/2223154
Create React App 被 React 官方拋棄了嗎?
參考URL: https://developer.aliyun.com/article/1207234

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

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

相關文章

Java面向對象筆記

多態 一種類型的變量可以引用多種實際類型的對象 如 package ooplearn;public class Test {public static void main(String[] args) {Animal[] animals new Animal[2];animals[0] new Dog();animals[1] new Cat();for (Animal animal : animals){animal.eat();}} }class …

Java面試題-集合

Java面試題-集合 1、什么是集合?2、集合和數組的區別是什么?3、集合有哪些特點?4、常用的集合類有哪些?5、List, Set, Map三者的區別?6、說說集合框架底層數據結構?7、線程安全的集合…

MeshFusion Pro : Ultimate Optimization Tool

MeshFusion Pro是Unity的強大優化工具,它使用一種高效的方法來組合對象,以減少繪制調用并提高FPS。 MeshFusion Pro可用于組合靜態對象以及LODGroups。您還可以創建動態組合對象,其中每個單獨的網格都可以在運行時移動,新的組合網格將自動更新。在保持單個網格自由度的同時…

【數據結構與算法 | 二叉樹篇】力扣101, 104, 111

1. 力扣101 : 對稱二叉樹 (1). 題 給你一個二叉樹的根節點 root , 檢查它是否軸對稱。 示例 1: 輸入:root [1,2,2,3,4,4,3] 輸出:true示例 2: 輸入:root [1,2,2,null,3,null,3] 輸出:false…

Java1.8語言+ springboot +mysql + Thymeleaf 全套家政上門服務平臺app小程序源碼

Java1.8語言 springboot mysql Thymeleaf 全套家政上門服務平臺app小程序源碼 家政系統是一套可以提供上門家政、上門維修、上門洗車、上門搬家等服務為一體的家政平臺解決方案。它能夠與微信對接、擁有用戶端小程序,并提供師傅端app,可以幫助創業者在…

樹的算法基礎知識

什么是樹: 樹是n(n>0)個結點的有限集。n0時稱為空樹。在任意一棵非空樹中: 有且僅有一個特定的稱為根的結點當n>1時,其余結點可分為m(m>0)個互不相交的有限集T1、T2、......、Tm&…

ElasticSearch學習筆記之三:Logstash數據分析

第3章 Logstash數據分析 Logstash使用管道方式進行日志的搜集處理和輸出。有點類似*NIX系統的管道命令 xxx | ccc | ddd,xxx執行完了會執行ccc,然后執行ddd。 在logstash中,包括了三個階段: 輸入input --> 處理filter(不是必須…

異或炸彈(easy)(牛客小白月賽95)

題目鏈接: D-異或炸彈(easy)_牛客小白月賽95 (nowcoder.com) 題目: 題目分析: 一看 還以為是二維差分的題呢 到后來才發現是一維差分問題 這里的距離是 曼哈頓距離 dis abs(x - xi) abs(y - yi) 暴力的做法 就是枚舉 n * n 個…

word-海報制作

1、確定海報的尺寸大小 2、創建主題顏色 設計-顏色-自定義顏色-柑橘rgb值改變著色1-著色6的顏色 3、將文字添加至文本框,更改字體顏色、大小和格式 4、添加背景水印:插入-形狀-文本框 5、組合全部元素 圖片素材網址:

Power BI前端設計:深度探索與實戰技巧

Power BI前端設計:深度探索與實戰技巧 Power BI作為一款強大的商業智能工具,其前端設計對于用戶體驗和數據可視化效果至關重要。本文將深入探討Power BI前端設計的四個關鍵方面、五個實用技巧、六個設計要素以及七個注意事項,助您提升Power …

學習分享-如何避免 Apache ShardingSphere 中的笛卡爾積現象

前言 Apache ShardingSphere 是一個開源的分布式數據庫中間件,旨在通過數據分片、分布式事務、分布式治理等技術,提升數據庫系統的性能和可擴展性。然而,最近在使用 ShardingSphere 進行分庫分表并多表查詢時,出現了笛卡爾積現象…

Spark Streaming 概述及入門案例

一、介紹 1. 不同的數據處理 從數據處理的方式: 流式數據處理(Streaming)批量數據處理(Batch) 從數據處理的延遲: 實時數據處理(毫秒級別)離線數據處理(小時或天級別) 2. 簡介 SparkStreaming 是一個準實時(秒或分鐘級別)、微批量的數據處理框架Spa…

在Red Hat Enterprise Linux 9上使用Docker快速安裝并部署RocketMQ

在Red Hat Enterprise Linux 9上快速安裝和部署RocketMQ可以按照以下步驟進行: 1. 安裝Docker 首先,確保Docker已經安裝在你的系統上。 更新系統包并安裝依賴項: sudo yum update -y sudo yum install -y yum-utils device-mapper-persiste…

2024年5月份面試總結

2024年5月份找工作/面試總結: 本人前段時間寫了剛過完年后的一個月內找工作的情況,請查看https://blog.csdn.net/zgaoq/article/details/136236788?spm1001.2014.3001.5501 但是后續寫的總結被和諧了,不知道這篇文章能不能發出來。 1、5月份…

系統架構設計師【第19章】: 大數據架構設計理論與實踐 (核心總結)

文章目錄 19.1 傳統數據處理系統存在的問題19.2 大數據處理系統架構分析19.2.1 大數據處理系統面臨挑戰19.2.2 大數據處理系統架構特征 19.3 Lambda架構19.3.1 Lambda架構對大數據處理系統的理解19.3.2 Lambda架構應用場景19.3.3 Lambda架構介紹19.3.4  Lambda架構的實…

數據庫的換行符到前端不展示了

是這樣的原本數據庫中的數據都是帶有\n換行符的但是頁面卻一直不展示 解決辦法 <el-drawer title"預覽" :visible.sync"drawer" :with-header"false"><div v-for"(item, index) in cardArray" :key"index"><…

如何將 Vue 應用程序部署到 Cloudflare Pages

在現代 Web 開發中&#xff0c;Vue.js 已經成為了一個非常受歡迎的前端框架。它的簡潔、高效和靈活性使得開發人員可以輕松構建出色的用戶界面和交互體驗。而 Cloudflare Pages 提供了一個簡單而強大的方式來托管和部署靜態網站和應用程序。本文將介紹如何將 Vue 應用程序部署到…

Android常見內存泄漏場景總結

一、非靜態內部類造成的內存泄漏 造成原因&#xff1a;非靜態內部類默認會持有外部類的引用&#xff0c;如果內部類的生命周期超過了外部類就會造成內存泄漏。 場景&#xff1a;當Activity銷毀后&#xff0c;由于內部類中存在異步耗時任務還在執行&#xff0c;導致Activity實…

[補題記錄]Leetcode 3.無重復字符的最長子串

傳送門&#xff1a;無重復字符的最長子串 Problem/題意 給一個由英文、數字、符號、空格組成的字符串&#xff0c;找出其中不含有重復字符的最長子串的長度。 比如&#xff1a;abb 包含了重復字符 b&#xff1b;abc 沒有包含重復字符。 注意是子串&#xff0c;不是子序列。 …

內網安全:橫向傳遞攻擊(PTH || PTK || PTT 哈希票據傳遞)

內網安全&#xff1a;橫向傳遞攻擊. 橫向移動就是在拿下對方一臺主機后&#xff0c;以拿下的那臺主機作為跳板&#xff0c;對內網的其他主機再進行后面滲透&#xff0c;利用既有的資源嘗試獲取更多的憑據、更高的權限&#xff0c;一步一步拿下更多的主機&#xff0c;進而達到控…