React快速入門教程
簡(jiǎn)介
Facebook官網(wǎng)介紹:React 是一個(gè)用來(lái)構(gòu)建用戶界面的 JavaScript 庫(kù)。相當(dāng)于 MVC 架構(gòu)的 V 層。
React 的核心思想是:封裝組件,各個(gè)組件維護(hù)自己的狀態(tài)和UI,當(dāng)狀態(tài)變更,自動(dòng)重新渲染整個(gè)組件。
React的優(yōu)點(diǎn)(React為什么這么火?):

組成
React構(gòu)建界面的三要點(diǎn):組件、路由、狀態(tài)管理。
React 的核心內(nèi)容:JSX和虛擬 DOM。
一個(gè)最基本的 React 組件由數(shù)據(jù)和JSX兩個(gè)主要部分構(gòu)成,我們先來(lái)看看數(shù)據(jù)。

這是一個(gè)簡(jiǎn)單完整的React組件(類),props 主要作用是提供數(shù)據(jù)來(lái)源,可以簡(jiǎn)單的理解為 props 就是構(gòu)造函數(shù)的參數(shù)。 state 唯一的作用是控制組件的表現(xiàn),用來(lái)存放會(huì)隨著交互變化狀態(tài),比如開(kāi)關(guān)狀態(tài)等。JSX 做的事情就是根據(jù) state 和 props 中的值,結(jié)合一些視圖層面的邏輯,輸出對(duì)應(yīng)的 DOM 結(jié)構(gòu)。
在組件內(nèi)部,可以通過(guò)this.props來(lái)訪問(wèn)props
React的一大創(chuàng)新,就是把每一個(gè)組件都看成是一個(gè)狀態(tài)機(jī),組件內(nèi)部通過(guò)state來(lái)維護(hù)組件狀態(tài)的變化,這也是state唯一的作用。

傳統(tǒng) Web App:是直接和DOM交互,由App來(lái)控制DOM的構(gòu)建和渲染、元素屬性的讀寫、事件的注冊(cè)和銷毀等。
React Web App:是通過(guò)虛擬DOM來(lái)交互。虛擬DOM是在DOM的基礎(chǔ)上建立了一個(gè)抽象層,我們對(duì)數(shù)據(jù)和狀態(tài)所做的任何改動(dòng),都會(huì)被自動(dòng)且高效的同步到虛擬DOM,最后再批量同步到DOM中。(渲染效率高)
React目前支持的事件列表:

生命周期
大體可以分為三個(gè)過(guò)程:初始化、更新和銷毀,在組件生命周期中,隨著組件的props或者state發(fā)生改變,它的虛擬DOM和DOM表現(xiàn)也將有相應(yīng)的變化。
一、初始化:

解析:
- 組件類在聲明時(shí),會(huì)先調(diào)用 getDefaultProps() 方法來(lái)獲取默認(rèn)props值,這個(gè)方法會(huì)且只會(huì)在聲明組件類時(shí)調(diào)用一次,這一點(diǎn)需要注意,它返回的默認(rèn)props由所有實(shí)例共享。
- 在組件被實(shí)例化之前,會(huì)先調(diào)用一次實(shí)例方法 getInitialState() 方法,用于獲取這個(gè)組件的初始state。
- 實(shí)例化之后就是渲染,componentWillMount方法會(huì)在生成虛擬DOM之前被調(diào)用,你可以在這里對(duì)組件的渲染做一些準(zhǔn)備工作,比如計(jì)算目標(biāo)容器尺寸然后修改組件自身的尺寸以適應(yīng)目標(biāo)容器等等。
- 接下來(lái)就是渲染工作,在這里你會(huì)創(chuàng)建一個(gè)虛擬DOM用來(lái)表示組件的結(jié)構(gòu)。
對(duì)于一個(gè)組件來(lái)說(shuō),render 是唯一一個(gè)必須的方法。render方法需要滿足這幾點(diǎn):
1)只能通過(guò) this.props 或 this.state 訪問(wèn)數(shù)據(jù)
2)只能出現(xiàn)一個(gè)頂級(jí)組件
3)可以返回 null、false 或任何 React 組件
4)不能對(duì) props、state 或 DOM 進(jìn)行修改
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
React如何利用相對(duì)于根目錄進(jìn)行引用組件詳解
這篇文章主要給大家介紹了關(guān)于React如何使用相對(duì)于根目錄進(jìn)行引用組件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10
React?Native集成支付寶支付的實(shí)現(xiàn)方法
這篇文章主要介紹了React?Native集成支付寶支付的實(shí)現(xiàn)現(xiàn),ativeModules是JS代碼調(diào)用原生模塊的橋梁。所以,我們只需要在原生工程中集成支付寶和微信支付的sdk,然后使用NativeModules調(diào)用即可,需要的朋友可以參考下2022-02-02
React中的權(quán)限組件設(shè)計(jì)問(wèn)題小結(jié)
這篇文章主要介紹了React中的權(quán)限組件設(shè)計(jì),整個(gè)過(guò)程也是遇到了很多問(wèn)題,本文主要來(lái)做一下此次改造工作的總結(jié),對(duì)React權(quán)限組件相關(guān)知識(shí)感興趣的朋友一起看看吧2022-07-07
React 中常用的幾種路由跳轉(zhuǎn)方式小結(jié)
基本路由跳轉(zhuǎn)是最常見(jiàn)的一種方式,下面介紹React 中常用的幾種路由跳轉(zhuǎn)方式,感興趣的朋友一起看看吧2023-12-12
antd?table動(dòng)態(tài)修改表格高度的實(shí)現(xiàn)
本文主要介紹了antd?table動(dòng)態(tài)修改表格高度的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Webpack 4.x搭建react開(kāi)發(fā)環(huán)境的方法步驟
這篇文章主要介紹了Webpack 4.x搭建react開(kāi)發(fā)環(huán)境的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08

