摘要:語法將語法直接加入到代碼中,再通過翻譯器裝換到純后由瀏覽器執(zhí)行。事實上,并不需要花精力學(xué)習(xí)。可以說,基本語法基本被囊括了,但也有少許不同。明確的數(shù)據(jù)流動。這條原則讓組件之間的關(guān)系變得簡單且可預(yù)測。使用獲取和顯示回調(diào)。
JSX語法
JSX將HTML語法直接加入到JavaScript代碼中,再通過翻譯器裝換到純JavaScript后由瀏覽器執(zhí)行。在實際開發(fā)中,JSX在產(chǎn)品打包階段都已經(jīng)編譯成純JavaScript,不會帶來任何副作用,反而會讓代碼更加直觀并易于維護(hù)。
事實上,JSX并不需要花精力學(xué)習(xí)。只要熟悉HTML標(biāo)簽,大多數(shù)功能就都可以直接使用了。
JSX語法完美地利用了JavaScript自帶的語法和特性,并使用大家熟悉的HTML語法來創(chuàng)建虛擬元素。可以說,JSX基本語法基本被XML囊括了,但也有少許不同。
React組件
基本的封裝性。
簡單的生命周期呈現(xiàn)。
明確的數(shù)據(jù)流動。
React組件的構(gòu)建方法
React.createClass
ES6 classes
無狀態(tài)函數(shù)
React數(shù)據(jù)流
在React中,數(shù)據(jù)是自頂向下單向流動的,即從父組件到子組件。這條原則讓組件之間的關(guān)系變得簡單且可預(yù)測。state與props是React組件中最重要的概念。如果頂層組件初始化props,那么React會向下遍歷整顆組件樹,重新嘗試渲染所有相關(guān)的子組件。而state只關(guān)心每個組件自己內(nèi)部的狀態(tài),這些狀態(tài)只能在組件內(nèi)改變。把組件看成一個函數(shù),那么它接受了props作為參數(shù),內(nèi)部由state作為函數(shù)的內(nèi)部參數(shù),返回一個Virtual DOM的實現(xiàn)。
React生命周期
組件的掛載與卸載:componentWillMount方法會在render方法之前執(zhí)行,而componentDidMount方法會在render方法之后執(zhí)行,分別代表了渲染前后的時刻。還有componentWillUnmount代表組件卸載前的狀態(tài),在這個方法中,我們常常會執(zhí)行一些清理方法,如事件回收或是清除定時器。
更新過程是指父組件向下傳遞props或組件自身執(zhí)行setState方法時發(fā)生的一系列更新動作。shouldComponentUpdate是一個特別的方法,它接受需要更新的props和state,讓開發(fā)者增加必要的條件判斷,讓其在需要時更新,不需要時不更新。因此,當(dāng)方法返回false的時候,組件不再向下執(zhí)行生命周期方法。componentWillUpdate和componentDidUpdate這兩個生命周期方法很容易理解,對應(yīng)的初始化方法也很容易知道,他們代表在更新過程中渲染前后的時刻。
getDerivedStateFromProps(props, state)
在 render() 之前觸發(fā),不管是什么原因觸發(fā) render() 方法的,此方法應(yīng)返回一個對象,用于更新 State, 或返回 null 不更新。
getSnapshotBeforeUpdate(prevProps, prevState)
在 Dom 改變之前獲得一些最新的信息,此方法的一切返回值都將被傳遞給 componentDidUpdate 方法中的 snapshot 參數(shù)。
componentDidCatch(err, info)
catch js 錯誤,log 這些 errors,顯示一個回調(diào)的 UI。
獲取錯誤的時機(jī):during rendering,生命周期函數(shù)和子組件的 constructor 函數(shù)。
使用 setState() 獲取 unhandled JS errors 和 顯示回調(diào) UI。
ReactDOM
findDOMNode:React提供的獲取DOM元素的方法有兩種,其中一種就是ReactDOM提供的findDOMNode,當(dāng)組件被渲染到DOM中,findDOMNode返回該React組件實例相應(yīng)的DOM節(jié)點。
為什么說只有在頂層組件我們才不得不使用ReactDOM呢?這是因為要把React渲染的Virtual DOM渲染到瀏覽器的DOM當(dāng)中,就要使用render方法了,該方法把元素掛載到container中,并且返回element的實例。
refs
在組件內(nèi),JSX是不會返回一個組件的實例的,它只是一個ReactElement,只是告訴React被掛載的組件應(yīng)該長什么樣。refs就是為此而生的,它是React組件中非常特殊的prop,可以附加到任何一個組件上。從字面意思來看,refs即reference,組件被調(diào)用時會新建一個該組件的實例,而refs就會指向這個實例,它可以是一個回調(diào)函數(shù),這個回調(diào)函數(shù)會在組件被掛載后立即執(zhí)行。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/105572.html
摘要:學(xué)習(xí)之道簡體中文版通往實戰(zhàn)大師之旅掌握最簡單,且最實用的教程。前言學(xué)習(xí)之道這本書使用路線圖中的精華部分用于傳授,并將其融入一個獨具吸引力的真實世界的具體代碼實現(xiàn)。完美展現(xiàn)了的優(yōu)雅。膜拜的學(xué)習(xí)之道是必讀的一本書。 《React 學(xué)習(xí)之道》The Road to learn React (簡體中文版) 通往 React 實戰(zhàn)大師之旅:掌握 React 最簡單,且最實用的教程。 showIm...
摘要:是用戶建立客戶端應(yīng)用的前端架構(gòu),它通過利用一個單向的數(shù)據(jù)流補(bǔ)充了的組合視圖組件,這更是一種模式而非正式框架,你能夠無需許多新代碼情況下立即開始使用。結(jié)構(gòu)和數(shù)據(jù)流一個單向數(shù)據(jù)流是模式的核心。 Flux是Facebook用戶建立客戶端Web應(yīng)用的前端架構(gòu),它通過利用一個單向的數(shù)據(jù)流補(bǔ)充了React的組合視圖組件,這更是一種模式而非正式框架,你能夠無需許多新代碼情況下立即開始使用Flux。 ...
摘要:前言以深入學(xué)習(xí)技術(shù)棧為線索,記錄下學(xué)習(xí)的重要知識內(nèi)容。要傳入時,必須使用屬性表達(dá)式。如果要使用自定義屬性,要使用前綴這與標(biāo)準(zhǔn)是一致的。 前言 以《深入學(xué)習(xí)react技術(shù)棧》為線索,記錄下學(xué)習(xí)React的重要知識內(nèi)容。本系列文章沒有涵蓋全部的react知識內(nèi)容,只是記錄下了學(xué)習(xí)之路上的重要知識點,一方面是自己的總結(jié),同時拿出來和在學(xué)習(xí)react的人們一塊分享,共同進(jìn)步。 正文 一:rea...
摘要:用于規(guī)范的類型與必需的狀態(tài)。表示由組件更改的數(shù)據(jù),通常是通過與用戶的交互來更改的。為了實現(xiàn)的修改,需要注冊事件處理程序到相應(yīng)的元素上。當(dāng)事件發(fā)生時,將更新后的值是從中檢索,并通知組件。通常情況下,該函數(shù)初始化狀態(tài)使用,,或其他數(shù)據(jù)存儲。 前言 上一篇文章中,我們講到了JSX的一些用法和注意事項,這次我們來講react中最基礎(chǔ)也是特別重要的內(nèi)容:組件。這篇文章包含組件的以下內(nèi)容:狀態(tài)、屬...
摘要:根據(jù)的類型不同,分別實例化類。并且處理特殊屬性,比如事件綁定。之后根據(jù)差異對象操作元素位置變動,刪除,添加等。各個組件獨立管理層層嵌套,互不影響,內(nèi)部實現(xiàn)的渲染功能。根據(jù)基本元素的值,判斷是否遞歸更新子節(jié)點,還是刪除舊節(jié)點,添加新節(jié)點。 首先理解ReactElement和ReactClass的概念。想要更好的利用react的虛擬DOM,diff算法的優(yōu)勢,我們需要正確的優(yōu)化、組織rea...
閱讀 3054·2023-04-26 00:40
閱讀 2391·2021-09-27 13:47
閱讀 4196·2021-09-07 10:22
閱讀 2965·2021-09-06 15:02
閱讀 3307·2021-09-04 16:45
閱讀 2484·2021-08-11 10:23
閱讀 3599·2021-07-26 23:38
閱讀 2900·2019-08-30 15:54