State 生命週期

2021-10-16 10:06:12 字數 1368 閱讀 6304

class

clock

extends

react.component;}

componentdidmount()

componentwillunmount()

tick()

);}render()

.<

/h2>

<

/div>);

}}reactdom.

render

(>

, document.

getelementbyid

('root'))

;

被傳給reactdom.render()的時候,react會呼叫clock元件的建構函式。因為clock需要顯示當前的時間,所以它會用乙個包含當前時間的物件來初始化this.state。我們會在之後更新state

之後react會呼叫元件的render()方法。這就是react確定該在頁面上展示什麼的方式。然後react更新dom來匹配clock渲染的輸出。

clock的輸出被插入到dom中後,react就會呼叫componentdidmount()生命週期方法。在這個方法中,clock元件向瀏覽器請求設定乙個計時器來每秒呼叫一次元件的tick()方法。

瀏覽器每秒都會呼叫一次tick()方法。 在這方法之中,clock元件會通過呼叫setstate()來計畫進行一次ui更新。得益於setstate()的呼叫,react能夠知道state已經改變了,然後會重新呼叫render()方法來確定頁面上該顯示什麼。這一次,render()方法中的this.state.date就不一樣了,如此以來就會渲染輸出更新過的時間。react也會相應的更新dom

一旦clock元件從dom中被移除,react就會呼叫componentwillunmount()生命週期方法,這樣計時器就停止了。

State與元件生命週期

顧名思義,state用於表示元件的狀態。相當於元件的私有變數,只可以在元件內部修改,完全受控於當前元件。是由類定義的元件所特有的。狀態的宣告 class clock extends react.component 對state進行初始化 render 如果想要實現實時更新的時鐘,那就需要與生命週期的...

React系列 狀態(State)和生命週期

而這就就關聯到了我們這次的主題 狀態 state 狀態 state 和 屬性 props 類似,都是乙個元件所需要的一些資料集合,但是它是私有的,並且由元件本身完全控制,可以認為它是元件的 私有屬性 或者是區域性屬性 如果想要使用狀態 state 的話,則需要我們在構建元件的時候是要以類元件為形式的...

React 生命週期 生命週期方法

生命週期 掛載 更新 解除安裝 元件被建立 執行初始化 並被掛載到dom中,完成元件的第一次渲染 constructor props getderivedstatefromprops props,state render componentdidmount 元件被建立時會首先呼叫元件的構造方法,接受...