React+Vite從零搭建項(xiàng)目及配置的實(shí)現(xiàn)
相信很多React初學(xué)者第一次搭建自己的項(xiàng)目,搭建時(shí)會(huì)無(wú)從下手,本篇適合快速實(shí)現(xiàn)功能,熟悉React項(xiàng)目搭建流程。
一、創(chuàng)建項(xiàng)目react-item
npm create vite react-item
二、調(diào)整項(xiàng)目目錄結(jié)構(gòu)
-src -apis 項(xiàng)目接口函數(shù) -assets 項(xiàng)目資源文件,比如,圖片等 -components 通用組件 -pages 頁(yè)面組件 -store 集中狀態(tài)管理 -utils 工具,比如,token、axios 的封裝等 -App.js 根組件 -index.css 全局樣式 -index.js 項(xiàng)目入口
三、使用scss預(yù)處理器
SASS是一種預(yù)編譯的 CSS,支持一些比較高級(jí)的語(yǔ)法,可以提高編寫樣式的效率,CRA接入scss非常簡(jiǎn)單只需要我們裝一個(gè)sass工具
1. 安裝解析 sass 的包
npm i sass -D
2. 創(chuàng)建全局樣式文件:index.scss
四、組件庫(kù)Ant Design
Ant Design(簡(jiǎn)稱 Antd)是一個(gè)企業(yè)級(jí)的 UI 設(shè)計(jì)語(yǔ)言和 React 組件庫(kù),由 Ant Financial(螞蟻金服)團(tuán)隊(duì)開發(fā)和維護(hù)。它旨在為開發(fā)者提供一套設(shè)計(jì)精美、功能完善的前端組件
官方網(wǎng)站:
Ant Design of React - Ant Design
1. 安裝 antd 組件庫(kù)
npm i antd
2. 在App.jsx中導(dǎo)入 Button 組件測(cè)試
import { Button } from 'antd'
import './App.css'
function App() {
return (
<>
<Button type='primary'>按鈕</Button>
</>
)
}
export default App
成功:

五、配置基礎(chǔ)路由
1. 安裝路由包
npm i react-router-dom
2. 準(zhǔn)備 Home和 About倆個(gè)基礎(chǔ)組件
一級(jí)路由:
// src/pages/Home.jsx
import { Outlet, Link } from 'react-router-dom';
const Home = () => {
return (
<div>
<nav>
<ul>
<li><Link to="/home/section1">側(cè)邊欄1</Link></li>
<li><Link to="/home/section2">側(cè)邊欄2</Link></li>
</ul>
</nav>
{/* 渲染嵌套路由的內(nèi)容 */}
<Outlet />
</div>
);
}
export default Home;
// src/pages/About.jsx
const About = () => {
return (
<div>
<h2>關(guān)于</h2>
</div>
);
}
export default About;
二級(jí)路由 Section1和Section2
// src/pages/Section1.jsx
const Section1 = () => {
return (
<div>
<h3>Section 1 Content</h3>
<p>This is the content of Section 1.</p>
</div>
);
}
export default Section1;// src/pages/Section2.jsx
const Section2 = () => {
return (
<div>
<h3>Section 2 Content</h3>
<p>This is the content of Section 2.</p>
</div>
);
}
export default Section2;
3. 配置路由
App.jsx
// src/App.jsx
import { BrowserRouter as Router, Route, Routes, Link } from 'react-router-dom';
import Home from './pages/Home';
import About from './pages/About';
import Section1 from './pages/Section1';
import Section2 from './pages/Section2';
const App = () => {
return (
<Router>
<div>
{/* 主導(dǎo)航欄 */}
<nav>
<ul className='tab'>
<li><Link to="/home">首頁(yè)</Link></li>
<li><Link to="/about">關(guān)于</Link></li>
</ul>
</nav>
{/* 路由配置 */}
<Routes>
<Route path="home" element={<Home />}>
{/* 二級(jí)路由配置 */}
<Route path="section1" element={<Section1 />} />
<Route path="section2" element={<Section2 />} />
</Route>
<Route path="about" element={<About />} />
</Routes>
</div>
</Router>
);
}
export default App;
BrowserRouter:用于包裹整個(gè)應(yīng)用程序,開啟前端路由的功能。在這里使用了別名Router,目的是讓路由能夠通過 URL 來導(dǎo)航頁(yè)面而不刷新整個(gè)頁(yè)面。Route:定義路由規(guī)則,指定 URL 路徑和對(duì)應(yīng)的組件。Routes:包裹所有的Route,用于配置和管理路由規(guī)則。Link:用于創(chuàng)建應(yīng)用程序內(nèi)的導(dǎo)航鏈接,通過點(diǎn)擊鏈接來進(jìn)行頁(yè)面導(dǎo)航。Router是 React Router 的核心組件,負(fù)責(zé)包裹整個(gè)應(yīng)用程序,管理頁(yè)面的路由邏輯。<Outlet />:用來渲染嵌套路由的內(nèi)容。在Home組件中,當(dāng)訪問/home/section1或/home/section2時(shí),這部分內(nèi)容會(huì)被渲染到<Outlet />所在的位置。
六、配置別名路徑
1. 安裝craco工具包
Create React App 是一個(gè)非常流行的工具,用于快速構(gòu)建 React 應(yīng)用。它提供了一些開箱即用的配置,如 Webpack、Babel、ESLint、Prettier 等。然而,這些配置默認(rèn)是隱藏的,用戶無(wú)法直接修改它們。如果你需要自定義 Webpack 或其他工具的配置,就需要執(zhí)行 eject 操作。
問題:eject 的缺點(diǎn)
- 執(zhí)行
eject后,所有的配置文件都會(huì)暴露出來并且變得可以修改,但這也意味著你需要管理和維護(hù)這些文件,增加了復(fù)雜度。 - 一旦
eject,就無(wú)法恢復(fù),也無(wú)法享受 Create React App 后續(xù)版本的自動(dòng)更新和修復(fù)。
解決方案:CRACO
CRACO 提供了一種無(wú)需執(zhí)行 eject 即可自定義配置的方法,它通過修改 CRA 的默認(rèn)配置來滿足你的需求,同時(shí)保持 CRA 的內(nèi)部配置自動(dòng)管理。
npm i @craco/craco -D
2. 根目錄增加 `craco.config.js` 配置文件
const path = require('path')
module.exports = {
// webpack 配置
webpack: {
// 配置別名
alias: {
// 約定:使用 @ 表示 src 文件所在路徑
'@': path.resolve(__dirname, 'src')
}
}
}3. 修改 `scripts 命令`
這個(gè)配置保留了 craco 作為主要的開發(fā)工具來啟動(dòng)、構(gòu)建和測(cè)試項(xiàng)目,并且通過 eject 保留了傳統(tǒng)的暴露配置的方式,允許開發(fā)者在需要時(shí)完全控制項(xiàng)目的配置。
在package.json中:
"scripts": {
"start": "craco start",
"build": "craco build",
"test": "craco test",
"eject": "react-scripts eject"
}4. 測(cè)試是否生效
import Login from '@/pages/Login' import Layout from '@/pages/Layout'
到此這篇關(guān)于React+Vite從零搭建項(xiàng)目及配置的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)React Vite搭建項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
React如何使用localStorage及實(shí)現(xiàn)刪除筆記操作過程
這篇文章主要介紹了React如何使用localStorage及實(shí)現(xiàn)刪除筆記操作過程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-12-12
react實(shí)現(xiàn)Radio組件的示例代碼
這篇文章主要介紹了react實(shí)現(xiàn)Radio組件的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
react-dnd實(shí)現(xiàn)任意拖動(dòng)與互換位置
這篇文章主要為大家詳細(xì)介紹了react-dnd實(shí)現(xiàn)任意拖動(dòng)與互換位置,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
React文件名和目錄規(guī)范最佳實(shí)踐記錄(總結(jié)篇)
React在使用時(shí)非常靈活,如果沒有一個(gè)規(guī)范約束項(xiàng)目,在開發(fā)過程中會(huì)非?;靵y,本文將介紹幾個(gè)優(yōu)秀的規(guī)范,介紹文件名和目錄前,需要先簡(jiǎn)述一下幾種通用的類型,用來區(qū)分文件的功能,感興趣的朋友一起看看吧2022-05-05
React中useEffect與生命周期鉤子函數(shù)的對(duì)應(yīng)關(guān)系說明
這篇文章主要介紹了React中useEffect與生命周期鉤子函數(shù)的對(duì)應(yīng)關(guān)系說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
詳解React中錯(cuò)誤邊界的原理實(shí)現(xiàn)與應(yīng)用
在React中,錯(cuò)誤邊界是一種特殊的組件,用于捕獲其子組件樹中發(fā)生的JavaScript錯(cuò)誤,并防止這些錯(cuò)誤冒泡至更高層,導(dǎo)致整個(gè)應(yīng)用崩潰,下面我們就來看看它的具體應(yīng)用吧2024-03-03

