讓我難忘的前端框架-React
在alibaba的實習專案sm_fetcher中,前端框架我用到了React,我覺得這是一個很有必要去學習的一個框架。那仫它的神奇之處在哪裡呢?下面就讓我來揭祕吧~~~
1、什仫什React?
React是一個用於構建使用者介面的Javascript庫,但是React並不是一套完整的MVC或者是MVM的框架,它僅僅涵蓋V–>view檢視層。React所做的事情主要就是對錶單元素做了專門的優化處理,它對錶單做了一些抽象,使得他們的使用方式更統一更規範,並且往往包含了錯誤校驗等邏輯。
2、約束性元件和非約束性元件
1>、約束性元件:由React來管理它的value;
<input type="text" value={this.state.name} onChange={this.handleChangel}/>
//省略部分程式碼
handleChange:function(e){
this.setState({name:e.target.value});
}
在這裡,value屬性不再是一個寫死的值,它是this.state.name,而this.state.name是this.handleChange負責管理的。在這個時候input的value根本不是使用者輸入的內容,而是onChange事件觸發之後,由於this.setState導致了一次重新的渲染。但是React會優化這個渲染,實際上它依然是通過設定input的value來實現的。我們可以在handleChange中對使用者輸入的值做任意的處理,例如可以做錯誤校驗。
2>、非約束性元件:就是由原生的DOM來管理的;
<input type="text" defaultValue="a"/>
這個defaultValue就是原生DOM中的value屬性。這樣寫出來的元件,其value值就是使用者輸入的內容,React可以不需要管理輸入的過程。
3>、約束性元件和非約束性元件的流程
非約束性元件:使用者輸入A-->input中顯示A
約束性元件:使用者輸入A-->觸發onChange事件-->handleChange中設定state.name="A"-->渲染input使他的value變成A;
3、React的ReactDOM.render()方法
ReactDOM.render(template,targetDOM)
該方法用於將模板轉換為HTML語言,並插入指定的DOM節點;
該方法接受兩個引數:第一個是建立的模板,多個dom元素外層需要使用一個標籤進行包裹,如<div>
ReactDOM
4、React的元件之Router
路由器Router就是React的一個元件,Router元件本身只是一個容器,真正的路由要通過Route元件定義;
想要了解的更加具體的童鞋可參考如下連結: React Router使用教程
5、React.Component—>是一個抽象基類
React.Component是無法直接使用的,你必須定義它的一個基類,並且至少有一個reader()方法可使用;
想要了解的更加具體的童鞋可參考如下連結:React components使用教程