React基礎概念
- React是基於組件化的開發,通過組件的組合,讓web應用能夠實現桌面應用的效果。
- React更有利於單頁應用的開發。
- 並非MVC框架,只能算是V
- 具有單項數據流的特點
- 優勢:代碼復用率比較高。虛擬DOM,減少真實DOM操作,能夠能夠提高渲染的效率,
State 屬性
this.props只能獲取數據,不能修改,不能進行設置操作。
this.props和this.state的區別: this.state:每個組件都有state屬性(獨立的屬性),state有讀取和修改的功能。 能夠做到虛擬DOM到真實DOM的修改,不能進行父組件向子組件的船值。 this.props:可以由父組件傳值給子組件。
- 初始化State:
1 getInitialState:function(){ 2 return { 3 cnt:0 4 } 5 }
- 設置State
- 獲取state的值
1 count:function(){ 2 this.setState({ 3 cnt: this.state.cnt+1 4 }) 5 }, 6 7 <label>{this.state.cnt}</label>
react 中的input輸入框不能修改
1 defaultValue = {this.state.cnt} //默認value 2 onChange={} //只要改變輸入框中的值,就會觸發事件
獲取真實DOM節點
-
通過屬性獲取
對要獲取的input框添加 ref=""屬性 (this.refs.pwdInput.refs.input.value)
-
函數方法
對要獲取的input框添加
1 ref= {function(ele){ //父組件 2 this._pwd = ele; 3 }.bind(this)} 4 5 ref= {function(ele){ //子組件 6 this._input = ele; 7 }.bind(this)} 8 9 //使用的時候 10 11 this._pwd._input
也可用箭頭函數 ref = {(ele)=>this._input = ele} //子組件 ref = {(ele)=>this._pwd = ele} //父組件
Ajax
另一種Ajax提交方式:
利用promise 異步模型。nodejs內部也是使用promise模型實現的單線程異步原理。 fetch()方法,采用promise實現異步提交,沒有用到XHR對象。、
組件的生命周期
三個方法
第一個和第三個在組件的生命周期中只執行一次。