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 元件被建立時會首先呼叫元件的構造方法,接受...