保定市住房和城鄉(xiāng)建設(shè)局網(wǎng)站競價廣告點(diǎn)擊軟件
一、React簡介
React是一個用于構(gòu)建用戶界面的JavaScript庫,它是Facebook的內(nèi)部項(xiàng)目,用來架設(shè)Instagram的網(wǎng)站,并于2013年5月開源。React主要用于構(gòu)建Ul,很多人認(rèn)為React 是 MVC 中的 V(視圖)。由于擁有較高的性能,且代碼邏輯非常簡單,越來越多的人已開始關(guān)注和使用它。
中文官網(wǎng):https://react.docschina.org
二、React特點(diǎn)
1、聲明式設(shè)計(jì)
react是面向數(shù)據(jù)編程,不需要直接去控制dom,你只要把數(shù)據(jù)操作好,react自己會去幫你操作dom,可以節(jié)省很多操作dom的代碼。這就是聲明式開發(fā)。
2、使用JSX語法
JSX 是 JavaScript 語法的擴(kuò)展。React 開發(fā)大部分使用 JSX 語法(在JSX中可以將HTML于JS混寫)
3、 靈活
react所控制的dom就是id為root的dom,頁面上的其他dom元素你也可以使用JQuery等其他框架??梢院推渌麕觳⒋?。
4、 使用虛擬DOM、高效
虛擬DOM其實(shí)質(zhì)是一個JavaScript對象,當(dāng)數(shù)據(jù)和狀態(tài)發(fā)生了變化,都會被自動高效的同步到虛擬DOM中,最后再將僅變化的部分同步到DOM中(不需要整個DOM樹重新渲染)。
5、組件化開發(fā)
通過React構(gòu)建組件,使得代碼更加容易得到復(fù)用和維護(hù),能夠很好的應(yīng)用在大項(xiàng)目的開發(fā)中。
6、單向數(shù)據(jù)流
react是單向數(shù)據(jù)流,父組件傳遞給子組件的數(shù)據(jù),子組件能夠使用,但是不能直接通過this.props修改。這樣讓數(shù)據(jù)清晰代碼容易維護(hù)。
三、create-react-app和npx介紹
React推薦使用npx create-react-app來創(chuàng)建React項(xiàng)目
npx create-react-app rdemo
關(guān)于create-react-app:
Create React App是FaceBook的React團(tuán)隊(duì)官方出的一個構(gòu)建React單頁面應(yīng)用的腳手架工具。它本身集成了webpack,并配置了一系列內(nèi)置的Toader 和默認(rèn)的npm的腳本,可以很輕松的實(shí)現(xiàn)零配置就可以快速開發(fā)React的應(yīng)用。
關(guān)于npx:
在 npm 的5.2.0版本 開始,自動安裝了npx。
npx是什么呢? npx 會幫你執(zhí)行依賴包里的二進(jìn)制文件。
npx 會自動查找當(dāng)前依賴包中的可執(zhí)行文件,如果找不到,就會去 PATH 里找。如果依然找不到,就會幫你安裝。
注意:
1、該命令建議運(yùn)行在node的12.13.0版本的基礎(chǔ)之上(查看node 版本 node -v
)
beiluo@beiluodeMBP ~ % npm -v
8.1.0
beiluo@beiluodeMBP ~ % node -v
v16.13.0
2、配置鏡像源(否則可能下載不成功或者很慢)
#配置到淘寶服務(wù)器
npm config set registry https://registry.npm.taobao.org#查看 registry 是否配置正確
npm config get registry
四、創(chuàng)建我們的第一個React項(xiàng)目
1、構(gòu)建一個名為reactdemo 項(xiàng)目
npx create-react-app reactdemo
看到以下代碼表示創(chuàng)建成功:
beiluo@beiluodeMBP code % npx create-react-app reactdemoCreating a new React app in /Users/beiluo/Documents/自我學(xué)習(xí)檔案/前端/react學(xué)習(xí)/code/reactdemo.Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts with cra-template...added 1418 packages in 27sInitialized a git repository.Installing template dependencies using npm...added 62 packages in 3s
Removing template package using npm...removed 1 package in 1sCreated git commit.Success! Created reactdemo at /Users/beiluo/Documents/自我學(xué)習(xí)檔案/前端/react學(xué)習(xí)/code/reactdemo
Inside that directory, you can run several commands:npm startStarts the development server.npm run buildBundles the app into static files for production.npm testStarts the test runner.npm run ejectRemoves this tool and copies build dependencies, configuration filesand scripts into the app directory. If you do this, you can’t go back!We suggest that you begin by typing:cd reactdemonpm startHappy hacking!
beiluo@beiluodeMBP code %
進(jìn)入目錄 cd reactdemo
運(yùn)行項(xiàng)目 npm start
項(xiàng)目運(yùn)行成功顯示如下:
Compiled successfully!You can now view reactdemo in the browser.Local: http://localhost:3000On Your Network: http://192.168.31.172:3000Note that the development build is not optimized.
To create a production build, use npm run build.webpack compiled successfully
瀏覽器打開:
2.react的項(xiàng)目目錄文件介紹
├── public # 公共靜態(tài)資源目錄
│ ├── favicon.ico # 網(wǎng)站圖標(biāo)
│ ├── index.html # 主頁面
│ ├── logo192.png # app圖標(biāo)
│ ├── logo512.png # app圖標(biāo)
│ ├── manifest.json # app配置文件
│ └── robots.txt # 網(wǎng)站跟爬蟲間的協(xié)議
├── src # 主目錄
│ ├── api # 接口文件
│ ├── app # redux配置文件
│ ├── components # 公共組件
│ │ ├── Loading # loading組件
│ │ ├── Redirect # 重定向組件
│ │ └── withAuthorization # 權(quán)限認(rèn)證組件
│ ├── layouts # 主要布局組件
│ ├── locales # i18n國際化配置
│ ├── pages # 路由組件
│ ├── routes # 路由配置
│ ├── styles # 全局/公共樣式
│ ├── utils # 工具函數(shù)
│ │ └── http # 封裝請求函數(shù)
│ ├── App.tsx # App組件
│ ├── index.ts # 主入口
│ ├── react-app-env.d.ts # 類型文件,在編譯時會引入額外文件
│ ├── reportWebVitals.ts # 基于Google的網(wǎng)站性能分析文件
│ └── setupTests.ts # 安裝測試
├── .env.development # 開發(fā)環(huán)境加載的環(huán)境變量配置
├── .env.production # 生產(chǎn)環(huán)境加載的環(huán)境變量配置
├── .gitignore # git忽略文件
├── craco.config.js # react腳手架配置文件
├── package.json # 包文件
├── README.MD # 項(xiàng)目說明文件
├── tsconfig.extend.json # 路徑別名配置文件
├── tsconfig.json # ts配置文件
└── yarn.lock # yarn下載包的緩存文件