react

react框架是由facebook開發的主旨是解決數據交互頻繁,以及組件複用的大型pc項目
react是一個典型的mvc框架,但它僅僅是一個典型的mvc的view層
react默認是單向數據流,以組件爲核心向四周擴散構建項目
react是一種未來的語言,是一種未來的方向
react的特性和優點
明式設計,採用聲明範式
高效,使用虛擬dom進行渲染
靈活,僅僅是一個view層的框架,所以他跟其他的很多框架都有良好的兼容性
推薦使用jsx和tsx(typescript),引擎模板來替換js
組件複用性高
單向數據流,結構清晰

mvc和mvvm (mvvm是mvc的一個分支)
mvc:model、view、controller:
model不能直接訪問controler(代表框架backbone)
mvvm:model、view、viewModel:(數據雙向綁定)
viewModel是model與view之間的橋樑,view與viewModel不能訪問

react中的數據傳輸的核心:state和prop
react中的組件的狀態state往往定義一些變量,後期可能發生更新改變
父子組件之間的傳遞,我們使用prop,它往往用來傳遞一些不發生改變的參數
state:
設置變量:setState
獲取變量:getState getInitialState

react中的event對象
react的時間中都存在一個react,自己定義的對象,event主要是爲了解決瀏覽器之間的兼容性
事件對象爲空,是爲了降低性能消耗

框架:antd、react-bootstrap

react被動更新
react是單向數據流操作,默認是不主動封信dom元素內容,綁定onChange事件模擬

react中特殊屬性ref
使用來獲取你真實dom元素中的內容 ReactDOM.findDOMNode

react數據雙向綁定
react是一個mvc框架,但是他也可以實現mvvm中的數據雙向綁定

react組件的生命週期可以分爲3個過程:
1、Mounting:初始渲染中    2、Updating:更新渲染中    3、Unmounting:卸載中

Mounting:初始渲染中(第一次渲染中,它一共包括了5個生命週期)
getDefaultProps:設置屬性(默認的prop)
getInitialState:設置初始狀態
componentWillMount:在初始化渲染之前最後一次執行的函數(ajax回調處理)
render:進行第一次渲染
componentDidMount:在渲染完畢後執行的函數,在這個函數中,我們往往進行dom元素的操作

es6中:app.defaultProps = ?或者使用es7 static.defultProps
getInitialState:初始化狀態值
construstor(props){
super(props)
this.state = {}
}
constructor:es6中的構造函數,在類中最先執行,往往配合super一塊使用,相當於一個回調返回整個類的對象,這樣才能使用this對象。


Updating:更新渲染中(它一共可以包括五個聲明周期函數)
componentWillReceiveProps:當組件接受新的props時候觸發,在這個函數中,我們可以更改prop或者state的值(nextprop,nextstate)
shouldComponentUpdate:是否允許第二次更新,返回值布爾類型 單個組件性能測試的生命週期函數的測試
componentWillUpdate:在更新渲染之前執行,最後一次,但是儘量不要在次函數中更改state或者props
render:更新渲染
componentDidUpdate:在你更新渲染完畢後,第一次執行的函數可以進行dom的操作

Unmounting:卸載中(包括一個生命週期函數)
componentWillunmount:在你卸載之前觸發的函數
語法:ReactDOM.unmountComponentAtNode()

react中創建元素,使用createElement(type,props object,child)
type創建元素的類型,
props object 屬性的對象,
child 內容或者是它的內部元素
創建組件和創建元素配合使用
在createElement當中,如果type是組件類型,nameprops object,針對的就是組件中的屬性,如果type不是組件,props object針對的是元素的屬性

key屬性
唯一的,react中用來追蹤那些列表中的元素被修改,被添加或者被替換的輔助標識
它往往和react當中diff算法配合使用
react中的key屬性不是給開發者使用而是給react本身使用的

react中的工廠方法
react中引入Factory,主要是爲了引入函數化(FP)編程的思想
函數化編程主要以函數作爲模塊,進行指向類編程,函數化編程,不需要主動回調,只需要被動指向
面向對象的編程思想(oop),和函數化編程思想(FP)
前端工程化越來越趨向於成熟,很多情況下,利用fp的思想進行開發,更加方便
方法:createFactory(string/type)

mixin
react是一個組件化的框架,主旨是組件與組件之間的相互獨立,但是有時候組件與組件之間需要繼承或者共享一些方法,這時候我們就要使用react提供的mixin的屬性。
mixin往往要配合聲明周期函數一塊使用

react組件分類:業務組件(處理業務)和技術組件(處理功能)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章