1, React是什么
用于構(gòu)建用戶界面的JavaScript庫(kù)
1> 發(fā)送請(qǐng)求
2> 處理數(shù)據(jù)
3> 操作DOM呈現(xiàn)頁(yè)面(React 只做這一步)
翻譯: React是一個(gè)將數(shù)據(jù)渲染為HTML視圖的開源JavaScript庫(kù)
2, React是誰(shuí)開發(fā)
由FaceBook開發(fā),且開源
近十年 “陳釀” 正在被騰訊,阿里等一線大廠廣泛使用
3, 為什么要學(xué)
1> 原生JavaScript操作DOM繁瑣,效率低(DOM-API操作UI)
原生每次DOM操作,瀏覽器都要重新繪制
Jquery操作DOM與原生JS操作DOM只是代碼量少了,效率低依然是一樣的
瀏覽器會(huì)進(jìn)行大量的重繪重排(數(shù)據(jù)量少,沒(méi)感覺,數(shù)據(jù)量大,會(huì)很嚴(yán)重)
2> 原生JS沒(méi)有組件化編碼方案,代碼復(fù)用率低
組件化: HTML/CSS/JS 都可以拆分
4, React的特點(diǎn)
1> 采用 組件化 模式, 聲明式編碼(通過(guò)特殊的語(yǔ)法聲明一下, 原生的編碼屬于命令式的,1,2,3...), 提高開發(fā)效率及組件復(fù)用率
2> 在React Native中可以使用React語(yǔ)法進(jìn)行移動(dòng)端開發(fā)(Android,IOS)
3> 使用虛擬DOM + 優(yōu)秀的Diffing算法, 盡量減少與真實(shí)DOM的交互
虛擬DOM: 不是真實(shí)的DOM,是給React使用的DOM,不存在于頁(yè)面上,而是存在內(nèi)存中
先虛擬DOM(存在內(nèi)存中), 再映射成 真實(shí)的DOM
當(dāng)有數(shù)據(jù)變化時(shí),原來(lái)能用的盡量用(Diff), 真正生成時(shí),只會(huì)有差異的那個(gè)生成,原來(lái)可用的數(shù)據(jù)就不會(huì)變了