最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React 腳手架使用指南(最新推薦)

 更新時(shí)間:2024年12月26日 11:27:18   作者:傻小胖  
本文介紹了React腳手架(CreateReactApp)的使用指南,包括創(chuàng)建項(xiàng)目、項(xiàng)目結(jié)構(gòu)、常用命令、最佳實(shí)踐、常見(jiàn)問(wèn)題解決以及腳手架的優(yōu)勢(shì),結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧

React 腳手架使用指南

React 腳手架(Create React App)是 Facebook 官方提供的創(chuàng)建 React 單頁(yè)應(yīng)用的工具。它提供了一個(gè)零配置的現(xiàn)代構(gòu)建設(shè)置。

為什么使用腳手架?

  • 無(wú)需配置 Webpack 和 Babel
  • 內(nèi)置熱重載
  • 自動(dòng)化構(gòu)建過(guò)程
  • 優(yōu)化的生產(chǎn)構(gòu)建
  • 良好的開(kāi)發(fā)體驗(yàn)

創(chuàng)建項(xiàng)目

1. 使用 npx 創(chuàng)建(推薦)

# 創(chuàng)建基礎(chǔ) React 項(xiàng)目
npx create-react-app my-app
# 創(chuàng)建 TypeScript 項(xiàng)目
npx create-react-app my-app --template typescript
# 進(jìn)入項(xiàng)目目錄
cd my-app
# 啟動(dòng)開(kāi)發(fā)服務(wù)器
npm start

2. 使用 npm 創(chuàng)建

# 全局安裝 create-react-app
npm install -g create-react-app
# 創(chuàng)建項(xiàng)目
create-react-app my-app

項(xiàng)目結(jié)構(gòu)

my-app/
  ├── node_modules/
  ├── public/
  │   ├── favicon.ico
  │   ├── index.html
  │   ├── manifest.json
  │   └── robots.txt
  ├── src/
  │   ├── App.css
  │   ├── App.tsx
  │   ├── App.test.tsx
  │   ├── index.css
  │   ├── index.tsx
  │   ├── logo.svg
  │   ├── react-app-env.d.ts
  │   ├── reportWebVitals.ts
  │   └── setupTests.ts
  ├── .gitignore
  ├── package.json
  ├── README.md
  ├── tsconfig.json
  └── yarn.lock

目錄說(shuō)明

1. public 目錄

<!-- public/index.html - 應(yīng)用的 HTML 模板 -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="%PUBLIC_URL%/favicon.ico" rel="external nofollow"  />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>React App</title>
  </head>
  <body>
    <div id="root"></div>
  </body>
</html>

2. src 目錄

// src/index.tsx - 應(yīng)用的入口文件
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);
// src/App.tsx - 主應(yīng)用組件
import React from 'react';
import './App.css';
function App() {
  return (
    <div className="App">
      <header className="App-header">
        <h1>Welcome to React</h1>
      </header>
    </div>
  );
}
export default App;

常用命令

開(kāi)發(fā)命令

# 啟動(dòng)開(kāi)發(fā)服務(wù)器
npm start
# 構(gòu)建生產(chǎn)版本
npm run build
# 運(yùn)行測(cè)試
npm test
# 彈出配置文件
npm run eject

配置說(shuō)明

1. package.json

{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.16.5",
    "@testing-library/react": "^13.4.0",
    "@testing-library/user-event": "^13.5.0",
    "@types/node": "^16.18.0",
    "@types/react": "^18.0.0",
    "@types/react-dom": "^18.0.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-scripts": "5.0.1",
    "typescript": "^4.8.4",
    "web-vitals": "^2.1.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  }
}

2. tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "noFallthroughCasesInSwitch": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react-jsx"
  },
  "include": ["src"]
}

最佳實(shí)踐

1. 目錄結(jié)構(gòu)建議

src/
  ├── components/        # 共享組件
  ├── pages/            # 頁(yè)面組件
  ├── hooks/            # 自定義 hooks
  ├── services/         # API 服務(wù)
  ├── utils/            # 工具函數(shù)
  ├── types/            # TypeScript 類型定義
  ├── assets/           # 靜態(tài)資源
  └── styles/           # 樣式文件

2. 環(huán)境變量配置

# .env.development - 開(kāi)發(fā)環(huán)境配置
REACT_APP_API_URL=http://dev-api.example.com
# .env.production - 生產(chǎn)環(huán)境配置
REACT_APP_API_URL=http://api.example.com

3. 代碼規(guī)范配置

// .eslintrc
{
  "extends": [
    "react-app",
    "react-app/jest"
  ],
  "rules": {
    "no-console": "warn",
    "prefer-const": "error"
  }
}

常見(jiàn)問(wèn)題解決

1. 路徑別名配置

// tsconfig.json
{
  "compilerOptions": {
    "baseUrl": "src",
    "paths": {
      "@/*": ["*"],
      "@components/*": ["components/*"],
      "@pages/*": ["pages/*"]
    }
  }
}

2. 代理配置

// package.json
{
  "proxy": "http://localhost:3001"
}

總結(jié)

腳手架優(yōu)勢(shì):

  • 快速創(chuàng)建項(xiàng)目
  • 零配置開(kāi)始
  • 完整的開(kāi)發(fā)環(huán)境
  • 優(yōu)化的構(gòu)建過(guò)程

使用建議:

  • 遵循目錄結(jié)構(gòu)規(guī)范
  • 合理使用環(huán)境變量
  • 保持代碼規(guī)范統(tǒng)一
  • 適時(shí)添加必要的配置

注意事項(xiàng):

  • 慎用 eject
  • 及時(shí)更新依賴
  • 保持項(xiàng)目結(jié)構(gòu)清晰
  • 做好文檔維護(hù)

到此這篇關(guān)于React 腳手架使用指南的文章就介紹到這了,更多相關(guān)React 腳手架使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何在React?Native開(kāi)發(fā)中防止滑動(dòng)過(guò)程中的誤觸

    如何在React?Native開(kāi)發(fā)中防止滑動(dòng)過(guò)程中的誤觸

    在使用React?Native開(kāi)發(fā)的時(shí),當(dāng)我們快速滑動(dòng)應(yīng)用的時(shí)候,可能會(huì)出現(xiàn)誤觸,導(dǎo)致我們會(huì)點(diǎn)擊到頁(yè)面中的某一些點(diǎn)擊事件,誤觸導(dǎo)致頁(yè)面元素響應(yīng)從而進(jìn)行其他操作,表現(xiàn)出非常不好的用戶體驗(yàn)。
    2023-05-05
  • React?Native實(shí)際項(xiàng)目中的經(jīng)驗(yàn)和踩坑記錄

    React?Native實(shí)際項(xiàng)目中的經(jīng)驗(yàn)和踩坑記錄

    在當(dāng)今移動(dòng)應(yīng)用開(kāi)發(fā)的浪潮中,React Native以其跨平臺(tái)、高效開(kāi)發(fā)的特點(diǎn)脫穎而出,成為眾多開(kāi)發(fā)者首選的框架之一,這篇文章主要介紹了React Native實(shí)際項(xiàng)目中的經(jīng)驗(yàn)和踩坑記錄的相關(guān)資料,需要的朋友可以參考下
    2026-03-03
  • React Native功能豐富的Toast通知庫(kù)

    React Native功能豐富的Toast通知庫(kù)

    這篇文章主要為大家介紹了React Native功能豐富的Toast通知庫(kù)使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 深入了解React中的合成事件

    深入了解React中的合成事件

    React 中的事件,是對(duì)原生事件的封裝,叫做合成事件。這篇文章主要通過(guò)幾個(gè)簡(jiǎn)單的示例為大家詳細(xì)介紹一下React中的合成事件,感興趣的可以了解一下
    2023-02-02
  • 編寫(xiě)React組件項(xiàng)目實(shí)踐分析

    編寫(xiě)React組件項(xiàng)目實(shí)踐分析

    本文通過(guò)實(shí)例給大家分享了編寫(xiě)React組件項(xiàng)目實(shí)踐的全過(guò)程,對(duì)此有興趣的朋友可以參考下。
    2018-03-03
  • react-native 封裝選擇彈出框示例(試用ios&android)

    react-native 封裝選擇彈出框示例(試用ios&android)

    本篇文章主要介紹了react-native 封裝選擇彈出框示例(試用ios&android),具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-07-07
  • react中常見(jiàn)hook的使用方式

    react中常見(jiàn)hook的使用方式

    這篇文章主要介紹了react中常見(jiàn)hook的使用方式與區(qū)別,幫助大家更好的理解和學(xué)習(xí)使用react,感興趣的朋友可以了解下
    2021-04-04
  • React中的setState使用細(xì)節(jié)和原理解析(最新推薦)

    React中的setState使用細(xì)節(jié)和原理解析(最新推薦)

    這篇文章主要介紹了React中的setState使用細(xì)節(jié)和原理解析(最新推薦),前面我們有使用過(guò)setState的基本使用, 接下來(lái)我們對(duì)setState使用進(jìn)行詳細(xì)的介紹,需要的朋友可以參考下
    2022-12-12
  • antd-react使用Select組件defaultValue踩的坑及解決

    antd-react使用Select組件defaultValue踩的坑及解決

    這篇文章主要介紹了antd-react使用Select組件defaultValue踩的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • react 實(shí)現(xiàn)頁(yè)面代碼分割、按需加載的方法

    react 實(shí)現(xiàn)頁(yè)面代碼分割、按需加載的方法

    本篇文章主要介紹了react 實(shí)現(xiàn)頁(yè)面代碼分割、按需加載的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04

最新評(píng)論

建水县| 南木林县| 新河县| 三原县| 安国市| 镇赉县| 岳池县| 会理县| 大化| 简阳市| 玉环县| 甘泉县| 垦利县| 石棉县| 土默特左旗| 绥江县| 剑河县| 镇坪县| 周宁县| 金塔县| 阿克陶县| 且末县| 保亭| 理塘县| 怀柔区| 浙江省| 翁源县| 乌苏市| 旌德县| 南阳市| 江油市| 台湾省| 冷水江市| 九台市| 清流县| 盘锦市| 响水县| 榆树市| 和平区| 仁怀市| 平邑县|