網(wǎng)盤地址:https://pan.baidu.com/s/1uCBPdCsHIASifjJpdntrJA 提取碼: cabq
騰訊微云下載地址:https://share.weiyun.com/JH3ozd2p 密碼:w5gz2n
手寫 React 高質(zhì)量源碼,邁向高階開(kāi)發(fā)教程,16章,2023最新!
1、什么是React?
React是用于構(gòu)建用戶界面的JavaScript庫(kù),起源于Facebook的內(nèi)部項(xiàng)目,該公司對(duì)市場(chǎng)上所有 JavaScript MVC框架都不滿意,決定自行開(kāi)發(fā)一套,用于架設(shè)Instagram的網(wǎng)站。于2013年5月開(kāi)源。
2、React三大顛覆性的特點(diǎn)
React 的一切都是基于組件的,組件有著良好的封裝性,組件可以讓代碼的復(fù)用和測(cè)試變得更加簡(jiǎn)單。各個(gè)組件都有著各自的狀態(tài),當(dāng)狀態(tài)變更時(shí),便會(huì)重新渲染整個(gè)組件,組件化開(kāi)發(fā)不僅僅應(yīng)用于 React ,這也是 Web 的發(fā)展的趨勢(shì)。
組件一般會(huì)涉及以下幾個(gè)部分:
props 屬性
state 狀態(tài)
組件的生命周期
無(wú)狀態(tài)函數(shù)式組件
state 設(shè)計(jì)原則
DOM操作
3、對(duì)ReactJS的認(rèn)識(shí)及ReactJS的優(yōu)點(diǎn)
首先,對(duì)于React,有一些認(rèn)識(shí)誤區(qū),這里先總結(jié)一下:
React不是一個(gè)完整的MVC框架,最多可以認(rèn)為是MVC中的V(View),甚至React并不非常認(rèn)可MVC開(kāi)發(fā)模式;
React的服務(wù)器端Render能力只能算是一個(gè)錦上添花的功能,并不是其核心出發(fā)點(diǎn),事實(shí)上React官方站點(diǎn)幾乎沒(méi)有提及其在服務(wù)器端的應(yīng)用;
有人拿React和Web Component相提并論,但兩者并不是完全的競(jìng)爭(zhēng)關(guān)系,你完全可以用React去開(kāi)發(fā)一個(gè)真正的Web Component;
React不是一個(gè)新的模板語(yǔ)言,JSX只是一個(gè)表象,沒(méi)有JSX的React也能工作
4、如何編寫React組件?
下面我們展示如何創(chuàng)建簡(jiǎn)單的React組件:
import React from 'react';
class Greeting extends React.Component {
constructor(props) {
super(props);
this.state = { name: props.name };
}
render() {
return <h1>Hello, {this.state.name}!</h1>;
}
}
export default Greeting;
5、React有什么優(yōu)缺點(diǎn)?
優(yōu)點(diǎn)
1、React速度快、性能好
它并不直接對(duì)DOM進(jìn)行操作,引入了一個(gè)叫做虛擬DOM的概念,安插在javascript邏輯和實(shí)際的DOM之間,性能好
2、跨瀏覽器兼容
虛擬DOM的原因幫助我們解決了跨瀏覽器問(wèn)題,它為我們提供了標(biāo)準(zhǔn)化的API
3、單向數(shù)據(jù)流
Flux隨著React視圖庫(kù)的開(kāi)發(fā)而被Facebook概念化,是一個(gè)用于在JavaScript應(yīng)用中創(chuàng)建單向數(shù)據(jù)層的架構(gòu)
4、React兼容性好
使用RequireJS來(lái)加載和打包,而B(niǎo)rowserify和Webpack適用于構(gòu)建大型應(yīng)用。
缺點(diǎn)
1.并不是一個(gè)單獨(dú)完整的框架
React是目標(biāo)是UI組件,通?梢院推渌蚣芙M合使用,目前并不適合單獨(dú)做一個(gè)完整的框架