1. 程式人生 > >React中props和state相同點和不同點

React中props和state相同點和不同點

朋友們,我想死你們了,最近這幾天忙著和病魔作鬥爭所以沒怎麼寫部落格,今天感覺好點了,趕緊來寫一波,就是這木敬業。

今天我們來討論討論props和state相同點和不同點

首先我來概要說明一下這兩者

props:

  props是一個從外部傳進元件的引數,由於React具有單向資料流的特性,所以他的主要作用是從父元件向子元件中傳遞資料,它是不可改變的,如果想要改變它,只能通過外部元件傳入新的props來重新渲染子元件,否則子元件的props和展示形式不會改變,props除了可以傳字串,數字,還可以傳遞物件,陣列甚至是回撥函式

 

state:

  state主要作用是用於元件儲存,控制及修改自己的狀態,它只能在constructor中初始化,state是可以被改變的,state放改動的一些屬性,比如點選選中,再點選取消,類似這種屬性就放入帶state中,注意:沒有state的叫做無狀態元件,多用props少用state,多寫無狀態元件,注意:修改state的值時,必須通過呼叫setState方法,當我們呼叫this.setState方法時,React會更新元件的資料狀態,並且重新呼叫render方法

 

下面來列舉一下兩者的異同:

  不同點:1.props不可以在元件內部修改,但state可以在元件內部修改

      2.可以從父元件修改自元件的props,而不能從父元件修改自元件的state

  相同點:1.props和state都是匯出HTML的原始資料。

      2.props和state都是確定性的,如果我們寫的元件為同一props和state的組合生成了不同的輸出,那木我們肯定在哪裡做錯了

      3.props和state都會觸發渲染更新

        4.props和state都是純JS物件(用typeof來判斷,結果都是object)

      5.可以從父元件得到初始值props和state的初始值

今天就先到這裡了,我得繼續幹活了,也不能天天划水不是,告辭!