# [第02堂] 安裝React環境 ## Node.js >一個JavaScript 執行環境(run-time environment):[傳送門](https://nodejs.org/en/) (下載左邊LTS版本) * LTS 版本:表示這個版本會由官方長期維護,通常會持續至少 30 個月以上的問題修正。 * Current 版本:當前最新的版本,雖然裡面可能會有新功能,但是這些功能最後不見得會留下來。  ## NVM >Node Version Manger,**Node 的版本管理器**,管理、切換Node版本。 >下載nvm-setup.zip檔案:[傳送門](https://github.com/coreybutler/nvm-windows/releases/tag/1.1.7) ### 常用指令 * **nvm ls**:列出所有已安裝的node版本,前面有標`*`是目前使用的版本 * **nvm install `<version>`**:安裝某個版本的 node * **nvm uninstall `<version>`**:解除安裝指定版本 * **nvm --version**:查看nvm版本 * **nvm use `<version>`**:切換node版本 ``` $ nvm ls 18.12.1 * 16.13.1 (Currently using 64-bit executable) 12.14.0 ``` ## NPM >Node Package Manager,**Node 的套件管理器**,安裝Node.js的時候會一起安裝,能下載和管理各種套件。 ### 常用指令 * **npm install**:尋找該資料夾裡面的package.json去下載裡面定義好的所有套件 * **npm init**:專案初始化讀取package.json的資訊,[傳送門](https://ithelp.ithome.com.tw/articles/10191682) * **npm start**:本地運行專案 * **npm run build**:將專案打包成webpack ## NPX >和NPM一樣是套件管理工具,不過是以暫存的方式使用套件,用完就刪。 更詳細解答:[傳送門](https://ithelp.ithome.com.tw/articles/10234240?sc=iThelpR) ### 常用指令 * **npx create-react-app `<name>`**:建立一個React專案,並把所有會用到的工具套件都安裝完畢 :::info :bulb: React 環境建置可分為兩種 * **自己從頭開始做**: 使用 React + Webpack 打包 + Bable 編譯 + Webpack Dev Server * **使用現成的套件**: create-react-app,由 React 官方提供,是一套CLI(Command Line Interface)工具 ::: ## 起一個新的專案 * **step 1** ``` $ node -v ``` 若出現找不到指令,就是沒安裝成功。 * **step 2** ``` $ npx create-react-app my-app ``` * **step 3** ``` $ cd /my-app ``` 可以透過cd ..、ls等指令找到專案 * **step 4** ``` $ npm start ``` ### 檔案目錄結構 | ---- **/node_modules** 負責用來存放經由 npm 安裝過後的套件 | ---- **/public** 靜態網頁 | ---- **/src** 專案中主要的檔案都會放置在此資料夾下,其中 index.js 是整個專案的程式進入點, App.js 是 React 建立專案預設的元件。 | ---- **.gitignore** 忽略不上傳git的檔案 (ex:.env、package-lock.json、node_modules)。 | ---- **package-lock.json** 在npm install時後生成一份文件,紀錄當前狀態下安裝的各個npm package的具體來源和版本號。 | ---- **package.json** 記錄所有安裝的套件與版本,用於專案設定與可以一次安裝多項套件,並且解決相依性問題。 | ---- **README.md** index.js 為 React 專案啟動時的進入點,會把放在ReactDOM.render裡面的程式渲染在html檔裡面的root標籤內,一般會將App.js頁面元件放置於此進行渲染。 * 渲染 在網頁載入時,將React 元件轉換成網頁內容的過程。 ## 常用套件 * [lodash](https://lodash.com/) * [moment](https://momentjs.com/) * [Ant Design(ANTD)](https://ant.design/components/overview/) * [Mantine](https://mantine.dev/) * [ECHARTS](https://echarts.apache.org/zh/index.html) * [SweetAlert2](https://sweetalert2.github.io/#examples) ### ReactDOM.render >是React的程式進入點,用來將 Virtual DOM 轉換成為真實的DOM。 把要渲染的內容丟入ReactDOM -> ReactDOM整理要渲染的內容 -> 對原始綁定的div在DOM上的位置做渲染 -> 完成畫面渲染 寫法: ReactDOM.render(要顯示的 React Element, 要顯示到哪個 HTML DOM element ) ```javascript= ReactDOM.render(<App />, document.getElementById("root")); ``` ```javascript= ## React v18 const root = ReactDOM.createRoot(document.getElementById('root')); root.render( <React.StrictMode> <App /> </React.StrictMode> ); ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up