react入門與實(shí)戰(zhàn)(一):引言和環(huán)境的搭建

這篇文章所包含的內(nèi)容如下牺荠,方便檢索:
運(yùn)用CRA腳手架快速創(chuàng)建react項(xiàng)目

目的

不知不覺也接觸react一年零2個(gè)月了,早倆年其實(shí)一直是用到vue(2)開發(fā)糟趾,總是聽到別人來對比說啥 react好還是vue好慌植,聽人說再多,不如實(shí)際拉出來溜溜义郑,這就是我去年這會(huì)想要學(xué)習(xí)react的初衷蝶柿。寫這篇博客主要是給自己留個(gè)小紀(jì)念,一個(gè)總結(jié)魔慷,是查漏補(bǔ)缺的機(jī)會(huì)只锭,也希望能給一些想要入門react的小伙伴給點(diǎn)思路,假如寫的不好院尔,歡迎大家指點(diǎn)。

大綱

  • 創(chuàng)建一個(gè)react項(xiàng)目
  • 介紹寫JSX及其生命周期
  • 如何在react中編寫組件(類組件以及函數(shù)式組件)
  • react中組件之間的內(nèi)部通信
  • 介紹下react的高階組件以及傳送門
  • 如何使用react-router
  • 結(jié)合react跟react-router喉誊,如何做到H5項(xiàng)目的框架搭建
  • react hook邀摆、redux、mobx伍茄、dva等(后續(xù)看效果再?zèng)Q定是否加入)

正文

創(chuàng)建一個(gè)react項(xiàng)目

創(chuàng)建react項(xiàng)目/應(yīng)用的方法有很多栋盹,本文直接通過CRA(create-react-app的簡稱)腳手架快速構(gòu)建項(xiàng)目。

前置要求:
需要電腦安裝有node環(huán)境
打開命令行終端(不懂如何打開的可以百度或者私聊哈敷矫,應(yīng)該算是計(jì)算機(jī)基礎(chǔ))
在命令行終端直接輸入 node -v
正常輸出版本號(hào)即表明node環(huán)境OK例获,不然需要去下載一個(gè)nodejs
建議大家盡量讓自己的node版本控制在10+汉额,也可以使用nvm快速切換node版本

安裝Node> = 10(即能保證npm 5.2+ =》 自帶npx

// 利用npx快速構(gòu)建一個(gè)最新的項(xiàng)目名稱為[my-app-test01]的react項(xiàng)目
// npx作用是在不需要安裝全局腳手架的情況下獲取到當(dāng)前最新版本的cra
// 耐心等待幾分鐘。榨汤。蠕搜。圖1所示
npx create-react-app my-app-test01 
// 安裝成功 如圖2所示
// 進(jìn)入my-app-test01 目錄
cd my-app-test01 
// 啟動(dòng)項(xiàng)目 默認(rèn)端口號(hào)3000,如被占據(jù)收壕,輸入提示Y即可打開空閑端口號(hào)
npm start
1.png

2.png

3.png

如果npx因?yàn)閚pm版本太低導(dǎo)致無法使用妓灌,而你又不想升級(jí)node以及npm的話,可以使用
npm install -g create-react-app
create-react-app my-app-test01 來創(chuàng)建項(xiàng)目蜜宪,當(dāng)然不是很建議

npx下載依賴過程報(bào)錯(cuò)虫埂,建議檢查下網(wǎng)絡(luò)環(huán)境

4-成功跑起項(xiàng)目.png

react項(xiàng)目目錄簡介

create-react-app 提供了開發(fā)React應(yīng)用所需的工具。它的初始文件結(jié)構(gòu)如下:
當(dāng)前react版本為@17.0.1圃验、 react-scripts@4.0.0

my-app-test01
├── .git                       // git目錄文件
├── README.md                  // 項(xiàng)目說明文件
├── node_modules               // 項(xiàng)目依賴文件 
├── package.json               // Node.js/npm為了建立該應(yīng)用程序所管理著的文件信息
├── package-lock.json          // Node.js/npm為了建立該應(yīng)用程序所管理著的文件信息
├── .gitignore                 // git忽略文件
├── public                     // 包含開發(fā)項(xiàng)目時(shí)瀏覽器讀取的文件
│   ├── favicon.ico
│   ├── index.html
│   ├── logo192.png
│   ├── logo512.png
│   ├── robots.txt
│   └── manifest.json
└── src                         // 源碼目錄掉伏,也就是我們接下來操作最多的目錄文件
    ├── App.css
    ├── App.js
    ├── App.test.js
    ├── index.css
    ├── index.js
    ├── logo.svg
    └── serviceWorker.js

現(xiàn)在我們已經(jīng)大概了解了通過CRA創(chuàng)建的react項(xiàng)目的文件結(jié)構(gòu),接下來我們可能需要根據(jù)自己的習(xí)慣進(jìn)行相關(guān)文件的挪動(dòng)以及修改澳窑,這就因人而異了岖免。

favicon.ico
logo192.png
logo512.png
robots.txt
manifest.json
serviceWorker.js
這幾個(gè)看需要?jiǎng)h除,這里我暫且不做處理

接下來我們模仿vue-cli的結(jié)構(gòu)照捡,大概做下資源路徑的調(diào)整颅湘,如下:

my-app-test01
├── .git 
├── README.md
├── node_modules 
├── package.json
├── package-lock.json
├── .gitignore
├── public
│   ├── favicon.ico
│   ├── index.html
│   ├── logo192.png
│   ├── logo512.png
│   ├── robots.txt
│   └── manifest.json
└── src
    ├── assets +
       ├── css +
           └── index.css +
       ├── img +
          └── logo.svg +
       └── js +
    ├── component +
    ├── libs +
    ├── router +
    ├── views +
        └── Test +
          ├── App.css +
          ├── App.js +
          └── App.test.js +
    ├── App.css -
    ├── App.js -
    ├── App.test.js -
    ├── index.css -
    ├── index.js m
    ├── logo.svg -
    └── serviceWorker.js

如圖所示

修改后的項(xiàng)目結(jié)構(gòu)

好了,現(xiàn)在的文檔結(jié)構(gòu)看的比較順眼了栗精,頁面歸頁面闯参,樣式歸樣式,也有了主入口index.js悲立,現(xiàn)在讓我們來最后看一下三個(gè)重點(diǎn)文件的關(guān)鍵點(diǎn)鹿寨。

  1. src/index.js 項(xiàng)目代碼主入口,作用跟vue的main.js相仿
  2. src/views/Test/App.js當(dāng)前頁面代碼
  3. public/index.html單頁index.html
// src/views/Test/App.js導(dǎo)出App.js
export default App;

// src/index.js
import App from './views/Test/App';
// 在ID為root的容器中渲染App內(nèi)容
ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);

// public/index.html
<div id="root"></div>

好了薪夕,以上就是關(guān)于創(chuàng)建react項(xiàng)目的所有內(nèi)容脚草,接下來我們嘗試做一下修改App.js里面的內(nèi)容

// src/views/Test/App.js
// line.18
Learn React,從現(xiàn)在開始

改完后原献,發(fā)現(xiàn)瀏覽器熱更新馏慨,頁面修改成功,大功告成姑隅。


嘗試修改文案

項(xiàng)目demo我會(huì)上傳到GitHub写隶,大家有需要可自行download


參考鏈接:
react
create react app
nodejs
npx
GitHub-demo

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市讲仰,隨后出現(xiàn)的幾起案子慕趴,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冕房,死亡現(xiàn)場離奇詭異躏啰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)耙册,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門给僵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人觅玻,你說我怎么就攤上這事想际。” “怎么了溪厘?”我有些...
    開封第一講書人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵胡本,是天一觀的道長。 經(jīng)常有香客問我畸悬,道長侧甫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任蹋宦,我火速辦了婚禮披粟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘冷冗。我一直安慰自己守屉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開白布蒿辙。 她就那樣靜靜地躺著拇泛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪思灌。 梳的紋絲不亂的頭發(fā)上俺叭,一...
    開封第一講書人閱讀 51,718評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音泰偿,去河邊找鬼熄守。 笑死,一個(gè)胖子當(dāng)著我的面吹牛耗跛,可吹牛的內(nèi)容都是我干的裕照。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼课兄,長吁一口氣:“原來是場噩夢啊……” “哼牍氛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起烟阐,我...
    開封第一講書人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蜒茄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唉擂,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年檀葛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了玩祟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡屿聋,死狀恐怖空扎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情润讥,我是刑警寧澤转锈,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站楚殿,受9級(jí)特大地震影響撮慨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜脆粥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一砌溺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧变隔,春花似錦规伐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至孵户,卻和暖如春萧朝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背夏哭。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來泰國打工检柬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人竖配。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓何址,卻偏偏與公主長得像,于是被迫代替她去往敵國和親进胯。 傳聞我的和親對象是個(gè)殘疾皇子用爪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355