一. React 介紹
1.React 起源與發(fā)展
React 起源于 Facebook 的內(nèi)部項(xiàng)目,因?yàn)樵摴緦?duì)市場(chǎng)上所有 JavaScript MVC 框架谜洽,都不滿意,就決定自己寫一套,用來架設(shè) Instagram 的網(wǎng)站。做出來以后崖疤,發(fā)現(xiàn)這套東西很好用,就在 2013 年 5 月開源了典勇。
2.React 與傳統(tǒng) MVC 的關(guān)系 11
輕量級(jí)的視圖層庫
React 不是一個(gè)完整的 MVC 框架劫哼,最多可以認(rèn)為是 MVC 中的 V(View),甚至 React 并不非常認(rèn)可 MVC 開發(fā)模式权烧;React 構(gòu)建頁面 UI 的庫】任担可以簡(jiǎn)單地理解為豪嚎,React 將界面分成了各個(gè)獨(dú)立的小塊谈火,每一個(gè)塊就是組件,這些組件之間可以組合舌涨、嵌套糯耍,就成了我們的頁面
3.React 的特性
特點(diǎn):
1.聲明式設(shè)計(jì)-React采用聲明范式舵鳞,可以輕松描述應(yīng)用套才。
2.高效-React通過對(duì)DOM的模擬(虛擬dom),最大限度地減少與DOM的交互。
3.靈活-React可以與已知的庫或框架很好地配合崎逃。
4.JSX-JSX是JavaScript 語法的擴(kuò)展至非。
5.組件-通過 React 構(gòu)建組件趣惠,使得代碼更加容易得到復(fù)用侍瑟,能夠很好的應(yīng)用在大項(xiàng)目的開發(fā)中6.單向響應(yīng)的數(shù)據(jù)流-React 實(shí)現(xiàn)了單向響應(yīng)的數(shù)據(jù)流损痰,從而減少了重復(fù)代碼卢未,這也是它為什么比傳統(tǒng)數(shù)據(jù)綁定更簡(jiǎn)單
4.虛擬 DOM
DOM 操作非常昂貴。我們都知道在前端開發(fā)中噩翠,性能消耗最大的就是 DOM 操作伤锚,而且這部分代碼會(huì)讓整體項(xiàng)目的代碼變得難以維護(hù)。React 把直實(shí) DOM 樹轉(zhuǎn)換成JavaScript 對(duì)象樹尼摹,也就是 VirtualDOM
二. create-react-app
npm install -g create -react-app
創(chuàng)建一個(gè)項(xiàng)目
create-react-app your-app 注意命名方式
如果不想全局安裝见芹,可以直接使用npx
npx create-react-app myapp 也可以實(shí)現(xiàn)相同的效果
這需要等待一段時(shí)間剂娄,這個(gè)過程實(shí)際上會(huì)安裝三個(gè)東西
- react: react的頂級(jí)庫
- react-dom: 因?yàn)閞eact有很多的運(yùn)行環(huán)境蠢涝,比如app端的react-native, 我們要在web上運(yùn)行就使用react-dom
- react-scripts: 包含運(yùn)行和打包react應(yīng)用程序的所有腳本及配置
常見問題:
- npm安裝失敗
- 切換為npm鏡像為淘寶鏡像
- 使用yarn,如果本來使用yarn還要失敗阅懦,還得把yarn的源切換到國(guó)內(nèi)
- 如果還沒有辦法解決和二,請(qǐng)刪除node_modules及package-lock.json然后重新執(zhí)行 npm install命令
- 再不能解決就刪除node_modules及package-lock.json的同時(shí)清除npm緩存 npm cache clean --force 之后再執(zhí)行 npm install 命令