react state和props

state:

state 的主要作用是用于組件保存、控制、修改自己的可變狀態(tài)。state 在組件內(nèi)部初始化,可以被組件自身修改,而外部不能訪問也不能修改。你可以認(rèn)為 state 是一個(gè)局部的、只能被組件自身控制的數(shù)據(jù)源。state 中狀態(tài)可以通過 this.setState 方法進(jìn)行更新,setState 會(huì)導(dǎo)致組件的重新渲染。

props:

props 的主要作用是讓使用該組件的父組件可以傳入?yún)?shù)來配置該組件。它是外部傳進(jìn)來的配置參數(shù),組件內(nèi)部無法控制也無法修改。除非外部組件主動(dòng)傳入新的 props,否則組件的 props 永遠(yuǎn)保持不變。

區(qū)別:state 是讓組件控制自己的狀態(tài),props 是讓外部對(duì)組件自己進(jìn)行配置。

正常的組件:

class HelloWorld extends Component {
  constructor() {
    super()
  }

  sayHi () {
    alert('Hello World')
  }

  render () {
    return (
      <div onClick={this.sayHi.bind(this)}>Hello World</div>
    )
  }
}

用函數(shù)式組件的編寫方式就是:

const HelloWorld = (props) => {
  const sayHi = (event) => alert('Hello World')
  return (
    <div onClick={sayHi}>Hello World</div>
  )
}

注:以前一個(gè)組件是通過繼承 Component 來構(gòu)建,一個(gè)子類就是一個(gè)組件。而用函數(shù)式的組件編寫方式是一個(gè)函數(shù)就是一個(gè)組件,你可以和以前一樣通過 <HellWorld /> 使用該組件。不同的是,函數(shù)式組件只能接受 props 而無法像跟類組件一樣可以在 constructor 里面初始化 state。你可以理解函數(shù)式組件就是一種只能接受 props 和提供 render 方法的類組件。

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

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

  • 本筆記基于React官方文檔,當(dāng)前React版本號(hào)為15.4.0。 1. 安裝 1.1 嘗試 開始之前可以先去co...
    Awey閱讀 7,932評(píng)論 14 128
  • 最近看了一本關(guān)于學(xué)習(xí)方法論的書,強(qiáng)調(diào)了記筆記和堅(jiān)持的重要性。這幾天也剛好在學(xué)習(xí)React,所以我打算每天堅(jiān)持一篇R...
    gaoer1938閱讀 1,816評(píng)論 0 5
  • 深入JSX date:20170412筆記原文其實(shí)JSX是React.createElement(componen...
    gaoer1938閱讀 8,183評(píng)論 2 35
  • 原教程內(nèi)容詳見精益 React 學(xué)習(xí)指南,這只是我在學(xué)習(xí)過程中的一些閱讀筆記,個(gè)人覺得該教程講解深入淺出,比目前大...
    leonaxiong閱讀 2,944評(píng)論 1 18
  • 用飲食來談閱讀,是一個(gè)不錯(cuò)的選擇。 一日三餐的飲食能讓我們填飽肚子,讓機(jī)體獲得能量。我們總說知識(shí)是我們的精神食糧,...
    劉素練習(xí)閱讀 695評(píng)論 0 2

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