使用props你可以吧任意類型的數(shù)據(jù)傳遞給組件挠乳;
組件對(duì)外公開(kāi)一個(gè)簡(jiǎn)單的屬性;(Props)來(lái)實(shí)現(xiàn)功能;
state和props主要的區(qū)別在于props是不可變的搀庶;而state可以根據(jù)與用戶交互來(lái)改變锯仪;這就是為什么有些容器組件
需要定義state來(lái)更新和修改數(shù)據(jù)疯汁。而子組件只能通過(guò)props來(lái)傳遞數(shù)據(jù)。
在子組件中卵酪;我們可以使用 this.props.name 來(lái)獲取父組件的state值幌蚊;
在父組件中使用state;并通過(guò)子組件上使用this.props將其傳遞到子組件上;
在render函數(shù)中溃卡;我們?cè)O(shè)置name和site來(lái)獲取父組件傳遞過(guò)來(lái)的數(shù)據(jù)溢豆;
props相當(dāng)于組件的數(shù)據(jù)流;它總是會(huì)從父組件向下傳遞至所有的子組件瘸羡;
通過(guò) setProps()方法改變組件屬性漩仙;觸發(fā)組件重新渲染;
React基于狀態(tài)實(shí)現(xiàn)對(duì)DOM控制和渲染犹赖;組件狀態(tài)分為兩種:一種是組件間的狀態(tài)傳遞队他,另一種是組件的
內(nèi)部狀態(tài);這兩種狀態(tài)使用props和state表示峻村。props用于從父組件到子組件的數(shù)據(jù)傳遞麸折;
組件內(nèi)部也有自己的狀態(tài):state,這些狀態(tài)只能在組件內(nèi)部修改。
React基于狀態(tài)實(shí)現(xiàn)對(duì)DOM控制和渲染粘昨;組件狀態(tài)分為兩種垢啼;
1:組件間的狀態(tài)傳遞;(props) props從父組件到子組建的數(shù)據(jù)傳遞
2:組件的內(nèi)部狀態(tài)张肾;? ? (state)? state只能定義在組件內(nèi)部芭析;定義組件的自己的狀態(tài)
React中的數(shù)據(jù)流是單向的;只會(huì)從父組件傳遞到子組件吞瞪;屬于props;
屬性props是父子組件間進(jìn)行狀態(tài)傳遞的接口馁启;React會(huì)向下遍歷整個(gè)組件樹(shù);并從新渲染使用這個(gè)屬性的組件芍秆;
創(chuàng)建元素:React.createElement()
克隆元素:React.cloneElement()
React.DOM.div()===React.createElement('div')
組件(component)是對(duì)一個(gè)或一系列ReactElement的封裝惯疙;在React中組件被認(rèn)為是最小的功能分離點(diǎn);
合理的利用組件浪听,可以解耦業(yè)務(wù)復(fù)雜度螟碎;可以更高效的完成UI的編寫(xiě);