React之props和state

React 基礎(chǔ)之props和state

  1. 在class 關(guān)鍵字創(chuàng)建的組件中,如果想使用外界傳來的props參數(shù),不許接收,直接通過this.props.***來訪問即可
  2. 注意無論是class 還是普通的function創(chuàng)建的組件,它們的props都是只讀的
  3. 另外注意 :class創(chuàng)建的組件,是有自己的私有屬性和生命周期函數(shù),
    而function創(chuàng)建的組件,只有props,沒有自己的私有數(shù)據(jù)和生命周期函數(shù)。
  4. class組件繼承了Component組件后,必須在構(gòu)造器里調(diào)用super(),只有調(diào)用了super()后,才能使用this關(guān)鍵字
constructor(){
   super()
   this.state={}
}
* 在class創(chuàng)建的組件中,this.state都是可讀可寫的
  而props都是只讀的,不能被重新賦值
* 如果一個組件需要有自己的私有數(shù)據(jù),則推薦用class創(chuàng)建的有狀態(tài)組件
* 如果一個組件不需要有自己的私有數(shù)據(jù),則推薦使用無狀態(tài)組件
  1. 組件中props和state之間的區(qū)別
    • props中的數(shù)據(jù)都是外界傳遞過來的
    • state中的數(shù)據(jù),都是組件私有的(一般通過ajax獲取來的,一般都是私有數(shù)據(jù))
    • props中的數(shù)據(jù)是只讀的
    • state中的數(shù)據(jù)都是可讀可寫的

事件綁定:
onClick只能接受一個function
最好寫成如下形式
onClick={()=>this.onClickhandler()}

onClickhandler=()=>{
}

state:
注意,React中,如果想為state中的數(shù)據(jù)重新賦值,不要使用this.state.***=值,應(yīng)該調(diào)用React提供的this.setState({msg:'123'})
setState執(zhí)行方法是異步的
如果在調(diào)用完this.setState之后,又想立即拿到最新的state值,需要使用
this.setState({},callback) 因為react是單向數(shù)據(jù)綁定,所以需要一個callback回調(diào)函數(shù)來拿到最新值

當(dāng)為文本框綁定value值以后,要么同時提供一個readOnly,要么提供一個onChange處理函數(shù)

  • 如果UI頁面上,文本框的內(nèi)容變化了,想要把最新的值同步回state中去,此時,React沒有這種自動同步機制:

    1. 在react中,需要程序員手動監(jiān)聽文本框的onChange事件;
    2. 在onChange事件中,拿到最新的文本框的值;
    3. 程序員調(diào)用this.setState({})手動吧最新的值同步到state中
  • 在onChange事件中獲取文本框的值,有兩種方案

    1. 通過事件參數(shù)e來獲取 const newVal=e.target.value
      this.setState({msg:newVal})
    2. 利用ref

console.log(this.refs.txt.value)

{
name:'',
age:'',
:'',
name2:'',
name3:'',
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本筆記基于React官方文檔,當(dāng)前React版本號為15.4.0。 1. 安裝 1.1 嘗試 開始之前可以先去co...
    Awey閱讀 7,932評論 14 128
  • 最近看了一本關(guān)于學(xué)習(xí)方法論的書,強調(diào)了記筆記和堅持的重要性。這幾天也剛好在學(xué)習(xí)React,所以我打算每天堅持一篇R...
    gaoer1938閱讀 1,812評論 0 5
  • 原教程內(nèi)容詳見精益 React 學(xué)習(xí)指南,這只是我在學(xué)習(xí)過程中的一些閱讀筆記,個人覺得該教程講解深入淺出,比目前大...
    leonaxiong閱讀 2,944評論 1 18
  • 其實,我還是記住了小彭說的那句話,還沒有到那個境界,有些東西,還不是時候教你。 我的體會就是,中醫(yī)對于我來說,是一...
    大荷08閱讀 341評論 0 1
  • 一、黑木耳:中醫(yī)理論中,腎對應(yīng)的是“黑色”,即“黑色入腎”,吃黑色的食物能夠補腎。肉類中羊肉含有豐富的蛋白質(zhì),具有...
    藏醫(yī)老張閱讀 908評論 0 0

友情鏈接更多精彩內(nèi)容