摘要:簡單地說,加入當前的值是,第一次調(diào)用傳給的參數(shù)是,第二次調(diào)用時,參數(shù)是,第三次調(diào)用時,參數(shù)是,最終的效果是讓變?yōu)?。值得一提的是,在函?shù)被調(diào)用時,并沒有改變,的改變要等到函數(shù)被重新執(zhí)行時或者函數(shù)返回之后才被改變。
less中串聯(lián)選擇器的表示
.container { &.content { } }
上面的&符號表示串聯(lián)選擇器,&.content表示選擇到.container.content這樣的元素
react中函數(shù)式的setState用法this.setState((oldState, oldProps)=>{ // 根據(jù)當前state和props計算新的state值 .... return {newState} })
如果傳遞給this.setState的參數(shù)不是一個對象而是一個函數(shù)
這個函數(shù)會接受兩個參數(shù),第一個參數(shù)是當前的state值,第二個是當前的props,這個函數(shù)返回一個對象,這個對象代表想要對this.state的更改。
例子
function increment(state, props){ return {count: state.count+1} } function incrementMultiple(){ // 假設默認的state中的count的值為0, // 則第一次setState時向increment傳遞的state的count的值為0 this.setState(increment) // this.state的count的值仍然為0 // 向increment傳遞的state的count的值為1 this.setState(increment) // this.state的count的值仍然為0 // 向increment傳遞的state的count的值為2 this.setState(increment) } // 調(diào)用上述函數(shù),最終this.state.count會成為3
對于多次調(diào)用函數(shù)式setState的情況,React會保證調(diào)用每次increment時,state都已經(jīng)合并了之前的狀態(tài)修改結果。簡單地說,加入當前this.state.count的值是0,第一次調(diào)用this.setState(increment),傳給increment的state參數(shù)是0,第二次調(diào)用時,state參數(shù)是1,第三次調(diào)用時,參數(shù)是2,最終incrementMultiple的效果是讓this.state.count變?yōu)?。
值得一提的是,在increment函數(shù)被調(diào)用時,this.state并沒有改變,this.state的改變要等到render函數(shù)被重新執(zhí)行時(或者shouldComponentUpdate函數(shù)返回false之后)才被改變。
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/112137.html
摘要:具體來說,異步執(zhí)行的運行機制如下。同步執(zhí)行也是如此,因為它可以被視為沒有異步任務的異步執(zhí)行。主線程之外,還存在一個任務隊列。那些對應的異步任務,于是結束等待狀態(tài),進入執(zhí)行棧,開始執(zhí)行。 所有任務可以分成兩種,一種是同步任務(synchronous),另一種是異步任務(asynchronous)。同步任務指的是,在主線程上排隊執(zhí)行的任務,只有前一個任務執(zhí)行完畢,才能執(zhí)行后一個任務;異步任...
閱讀 984·2021-11-22 09:34
閱讀 2168·2021-11-11 16:54
閱讀 2206·2021-09-27 14:00
閱讀 950·2019-08-30 15:55
閱讀 1537·2019-08-29 12:46
閱讀 610·2019-08-26 18:42
閱讀 647·2019-08-26 13:31
閱讀 3191·2019-08-26 11:52