中文字幕av高清_国产视频一二区_男女羞羞羞视频午夜视频_成人精品一区_欧美色视_在线视频这里只有精品

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > web面試題:react面試題(setState)

web面試題:react面試題(setState)

來源:千鋒教育
發布人:wjy
時間: 2022-06-06 14:42:00 1654497720

# react面試題-setState可能會被合并?

```text
function incrementMultiple() {
  this.setState({count: this.state.count + 1});
  this.setState({count: this.state.count + 1});
  this.setState({count: this.state.count + 1});
}
請問這個時候,this.state.count的值為多少呢?答案為1
那哪些情況是不會合并呢?
        // 傳入函數,不會被合并。執行結果是 +3
        this.setState((prevState, props) => {
            return {
                count: prevState.count + 1
            }
        })
        this.setState((prevState, props) => {
            return {
                count: prevState.count + 1
            }
        })
        this.setState((prevState, props) => {
            return {
                count: prevState.count + 1
            }
        })
```

web面試題react面試題

 

# react面試題-setState可能是異步更新(是同步還是異步)?

setState為什么設計為異步?可以顯著的提升性能;

- 如果每次調用 setState都進行一次更新,那么意味著render函數會被頻繁調用,界面重新渲染,這樣效率是很低的;
- 最好的辦法應該是獲取到多個更新,之后進行批量更新

那么如何可以獲取到更新后的值呢? 回顧vue nextTick

 方式一:setState的回調

```text
this.setState({
            count: this.state.count + 1
        }, () => {
            // 聯想 Vue $nextTick - DOM
            console.log('count by callback', this.state.count) // 回調函數中可以拿到最新的 state
        })
```

 方式二:在生命周期函數內獲取

```text
//自己定義的 DOM 事件,setState 是同步的。再 componentDidMount 中
        componentDidMount() {
            // 自己定義的 DOM 事件,setState 是同步的
            document.body.addEventListener('click', this.bodyClickHandler)
        }
       bodyClickHandler = () => {
            this.setState({
                count: this.state.count + 1
            })
            console.log('count in body event', this.state.count)
        }
```

 

# react面試題-setState是什么原因決定異步還是同步的?

```text
this.state是否異步,關鍵是看是否命中 batchUpdata 機制,命中就異步,未命中就同步。
```

關于batchUpdate機制咱們看下官網的主流程圖:

web面試題:react面試題2

web面試題:react面試題3

查看batchUpdate是否命中是決定setState異步或者同步的關鍵,如圖所示,如果命中代表當前是異步,會執行保存組件到dirtyComponents中,如果沒有命中會走右邊,遍歷所有dirtyComponents并執行調用和更新操作,當前就是同步。

更多關于web培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經驗,采用全程面授高品質、高體驗培養模式,擁有國內一體化教學管理及學員服務,助力更多學員實現高薪夢想。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 国产一区在线观看视频 | 超碰在线网址 | 91麻豆精品国产91久久久资源速度 | 狠狠操麻豆 | 国产精品三级久久久久久电影 | 精品欧美黑人一区二区三区 | 精国产品一区二区三区 | 在线激情av | 国产成人精品999在线观看 | julia一区二区中文久久94 | 黄色在线免费观看 | www.超碰在线 | 日韩在线看片 | 青草福利 | 久久久精品日韩 | 久久久精品免费看 | 日本精品视频在线观看 | 日本一区二区成人 | 激情免费视频 | 在线观看成人福利 | 妞干网免费在线视频 | 欧美 日韩 在线播放 | 日韩精品亚洲一区 | 色呦呦视频在线观看 | 91资源在线观看 | 天堂综合网 | 最新国产在线视频 | 一区二区中文字幕 | 精品三级在线观看 | 精品日韩中文字幕 | 日本精品二区 | 日韩城人网站 | 午夜精品久久久久久久久久久久 | 亚洲一级黄色 | 亚洲精品国产99 | 欧美视频网站 | 久久久网 | 日韩在线视频观看 | 99精品国产99久久久久久97 | 成人黄视频在线观看 | 欧美成人手机在线 |