精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

面試官:說說你在使用React 過程中遇到的常見問題?解決方案?

開發(fā) 前端
在使用react開發(fā)項目過程中,每個人或多或少都會遇到一些"奇怪"的問題,本質(zhì)上都是我們對其理解的不夠透徹。

[[415497]]

本文轉(zhuǎn)載自微信公眾號「JS每日一題」,作者灰灰。轉(zhuǎn)載本文請聯(lián)系JS每日一題公眾號。

一、前言

在使用react開發(fā)項目過程中,每個人或多或少都會遇到一些"奇怪"的問題,本質(zhì)上都是我們對其理解的不夠透徹

react 系列,33個工作日,33次凌晨還在亮起的臺燈,到今天就圓滿畫上句號了,比心

在系列中我們列出了很多比較經(jīng)典的考題,工作中遇到的問題也往往就藏中其中,只是以不同的表現(xiàn)形式存在罷了

今天的題解不算題解,準(zhǔn)確來說是對整個系列的一次貫穿,總結(jié)

目錄:

  • react 有什么特性
  • 生命周期有哪些不同階段?每個階段對應(yīng)的方法是?
  • state 和 props有什么區(qū)別?
  • super()和super(props)有什么區(qū)別?
  • setState執(zhí)行機制?
  • React的事件機制?
  • 事件綁定的方式有哪些?
  • 構(gòu)建組件的方式有哪些?區(qū)別?
  • 組件之間如何通信?
  • key有什么作用?
  • refs 的理解?應(yīng)用場景?
  • Hooks的理解?解決了什么問題?
  • 如何引入css?
  • redux工作原理?
  • redux中間件有哪些?
  • react-router組件有哪些?
  • render觸發(fā)時機?
  • 如何減少render?
  • JSX轉(zhuǎn)化DOM過程?
  • 性能優(yōu)化手段有哪些
  • 如何做服務(wù)端渲染?

react 有什么特性

主要的特性分為:

  • JSX語法
  • 單向數(shù)據(jù)綁定
  • 虛擬DOM
  • 聲明式編程
  • Component

借助這些特性,react整體使用起來更加簡單高效,組件式開發(fā)提高了代碼的復(fù)用率

  • 生命周期有哪些不同階段?每個階段對應(yīng)的方法是?

主要分成了新的生命周期和舊的生命周期:

新版生命周期整體流程如下圖所示:

舊的生命周期流程圖如下:

state 和 props有什么區(qū)別?

兩者相同點:

  • 兩者都是 JavaScript 對象
  • 兩者都是用于保存信息
  • props 和 state 都能觸發(fā)渲染更新

區(qū)別:

  • props 是外部傳遞給組件的,而 state 是在組件內(nèi)被組件自己管理的,一般在 constructor 中初始化
  • props 在組件內(nèi)部是不可修改的,但 state 在組件內(nèi)部可以進行修改
  • state 是多變的、可以修改

super()和super(props)有什么區(qū)別?

在React中,類組件基于ES6,所以在constructor中必須使用super

在調(diào)用super過程,無論是否傳入props,React內(nèi)部都會將porps賦值給組件實例porps屬性中

如果只調(diào)用了super(),那么this.props在super()和構(gòu)造函數(shù)結(jié)束之間仍是undefined

setState執(zhí)行機制?

在react類組件的狀態(tài)需要通過setState進行更改,在不同場景下對應(yīng)不同的執(zhí)行順序:

在組件生命周期或React合成事件中,setState是異步

在setTimeout或者原生dom事件中,setState是同步

當(dāng)我們批量更改state的值的時候,react內(nèi)部會將其進行覆蓋,只取最后一次的執(zhí)行結(jié)果

當(dāng)需要下一個state依賴當(dāng)前state的時候,則可以在setState中傳遞一個回調(diào)函數(shù)進行下次更新

React的事件機制?

React基于瀏覽器的事件機制自身實現(xiàn)了一套事件機制,包括事件注冊、事件的合成、事件冒泡、事件派發(fā)等

組件注冊的事件最終會綁定在document這個 DOM上,而不是 React組件對應(yīng)的 DOM,從而節(jié)省內(nèi)存開銷

自身實現(xiàn)了一套事件冒泡機制,阻止不同時間段的冒泡行為,需要對應(yīng)使用不同的方法

事件綁定的方式有哪些?

react常見的綁定方式有如下:

  • render方法中使用bind
  • render方法中使用箭頭函數(shù)
  • constructor中bind
  • 定義階段使用箭頭函數(shù)綁定

前兩種方式在每次組件render的時候都會生成新的方法實例,性能問題欠缺

構(gòu)建組件的方式有哪些?區(qū)別?

組件的創(chuàng)建主要分成了三種方式:

  • 函數(shù)式創(chuàng)建
  • 繼承 React.Component 創(chuàng)建
  • 通過 React.createClass 方法創(chuàng)建

如今一般都是前兩種方式,對于一些無狀態(tài)的組件創(chuàng)建,建議使用函數(shù)式創(chuàng)建的方式,再比如hooks的機制下,函數(shù)式組件能做類組件對應(yīng)的事情,所以建議都使用函數(shù)式的方式來創(chuàng)建組件

組件之間如何通信?

組件間通信可以通過props、傳遞回調(diào)函數(shù)、context、redux等形式進行組件之間通訊

key有什么作用?

使用key是react性能優(yōu)化的手段,在一系列數(shù)據(jù)最前面插入元素,如果沒有key的值,則所有的元素都需要進行更換,而有key的情況只需要將最新元素插入到前面,不涉及刪除操作

在使用key的時候應(yīng)保證:

  • key 應(yīng)該是唯一的
  • key不要使用隨機值(隨機數(shù)在下一次 render 時,會重新生成一個數(shù)字)
  • 避免使用 index 作為 key

refs 的理解?應(yīng)用場景?

Refs允許我們訪問 DOM節(jié)點或在 render方法中創(chuàng)建的 React元素

下面的場景使用refs非常有用:

  • 對Dom元素的焦點控制、內(nèi)容選擇、控制
  • 對Dom元素的內(nèi)容設(shè)置及媒體播放
  • 對Dom元素的操作和對組件實例的操作
  • 集成第三方 DOM 庫

Hooks的理解?解決了什么問題?

Hook 是 React 16.8 的新增特性。它可以讓你在不編寫 class 的情況下使用 state 以及其他的 React 特性

解決問題如下:

  • 難以重用和共享組件中的與狀態(tài)相關(guān)的邏輯
  • 邏輯復(fù)雜的組件難以開發(fā)與維護,當(dāng)我們的組件需要處理多個互不相關(guān)的 local state 時,每個生命周期函數(shù)中可能會包含著各種互不相關(guān)的邏輯在里面
  • 類組件中的this增加學(xué)習(xí)成本,類組件在基于現(xiàn)有工具的優(yōu)化上存在些許問題
  • 由于業(yè)務(wù)變動,函數(shù)組件不得不改為類組件等等

如何引入css?

常見的CSS引入方式有以下:

  • 在組件內(nèi)直接使用
  • 組件中引入 .css 文件
  • 組件中引入 .module.css 文件
  • CSS in JS

組件內(nèi)直接使用css會導(dǎo)致大量的代碼,而文件中直接引入css文件是全局作用域,發(fā)生層疊

引入.module.css文件能夠解決局部作用域問題,但是不方便動態(tài)修改樣式,需要使用內(nèi)聯(lián)的方式進行樣式的編寫

css in js這種方法,可以滿足大部分場景的應(yīng)用,可以類似于預(yù)處理器一樣樣式嵌套、定義、修改狀態(tài)等

redux工作原理?

redux要求我們把數(shù)據(jù)都放在 store公共存儲空間

一個組件改變了 store 里的數(shù)據(jù)內(nèi)容,其他組件就能感知到 store的變化,再來取數(shù)據(jù),從而間接的實現(xiàn)了這些數(shù)據(jù)傳遞的功能

工作流程圖如下所示:

redux中間件有哪些?

市面上有很多優(yōu)秀的redux中間件,如:

  • redux-thunk:用于異步操作
  • redux-logger:用于日志記錄

react-router組件有哪些?

常見的組件有:

  • BrowserRouter、HashRouter
  • Route
  • Link、NavLink
  • switch
  • redirect

render觸發(fā)時機?

在React 中,類組件只要執(zhí)行了 setState 方法,就一定會觸發(fā) render 函數(shù)執(zhí)行

函數(shù)組件useState 會判斷當(dāng)前值有無發(fā)生改變確定是否執(zhí)行render方法,一旦父組件發(fā)生渲染,子組件也會渲染

如何減少render?

父組件渲染導(dǎo)致子組件渲染,子組件并沒有發(fā)生任何改變,這時候就可以從避免無謂的渲染,具體實現(xiàn)的方式有如下:

  • shouldComponentUpdate
  • PureComponent
  • React.memo

JSX轉(zhuǎn)化DOM過程?

jsx首先會轉(zhuǎn)化成React.createElement這種形式,React.createElement作用是生成一個虛擬Dom對象,然后會通過ReactDOM.render進行渲染成真實DOM

性能優(yōu)化手段有哪些

除了減少render的渲染之外,還可以通過以下手段進行優(yōu)化:

除此之外, 常見性能優(yōu)化常見的手段有如下:

  • 避免使用內(nèi)聯(lián)函數(shù)
  • 使用 React Fragments 避免額外標(biāo)記
  • 使用 Immutable
  • 懶加載組件
  • 事件綁定方式
  • 服務(wù)端渲染

如何做服務(wù)端渲染?

node server 接收客戶端請求,得到當(dāng)前的請求url 路徑,然后在已有的路由表內(nèi)查找到對應(yīng)的組件,拿到需要請求的數(shù)據(jù),將數(shù)據(jù)作為 props、context或者store 形式傳入組件

然后基于 react 內(nèi)置的服務(wù)端渲染方法 renderToString()把組件渲染為 html字符串在把最終的 html進行輸出前需要將數(shù)據(jù)注入到瀏覽器端

瀏覽器開始進行渲染和節(jié)點對比,然后執(zhí)行完成組件內(nèi)事件綁定和一些交互,瀏覽器重用了服務(wù)端輸出的 html 節(jié)點,整個流程結(jié)束

到這里,整個React系列也就結(jié)束了,如果這個系列有給你帶來一些啟發(fā)或者幫助,可以點點下方的贊告訴我們,我們下個系列再見

 

責(zé)任編輯:武曉燕 來源: JS每日一題
相關(guān)推薦

2021-08-03 07:51:43

React項目面試

2021-05-18 08:21:38

React HooksReact前端

2021-06-29 09:47:34

ReactSetState機制

2019-04-04 13:11:37

React內(nèi)存泄露memory leak

2021-07-13 07:52:03

ReactHooks組件

2019-10-08 16:05:19

Redis數(shù)據(jù)庫系統(tǒng)

2021-07-29 07:55:20

React Fiber架構(gòu)引擎

2010-09-27 13:45:38

2021-08-09 07:47:40

Git面試版本

2021-11-25 10:18:42

RESTfulJava互聯(lián)網(wǎng)

2021-06-30 07:19:36

React事件機制

2021-05-17 07:08:28

大數(shù)據(jù)采集MySQL

2016-09-27 21:14:53

JavaURL

2010-08-26 12:59:29

marginCSS

2014-01-07 13:54:02

HadoopYARN

2021-08-03 08:41:18

SQLMysql面試

2021-07-30 07:47:36

DOMReactJsx

2021-09-26 10:57:16

集合操作場景

2021-08-02 08:34:20

React性能優(yōu)化

2020-12-01 08:47:36

Java異常開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲成人网在线观看| 亚洲欧美在线高清| 秋霞成人午夜鲁丝一区二区三区| 亚洲蜜桃精久久久久久久久久久久| 刘亦菲一区二区三区免费看| 中文字幕亚洲精品在线观看 | 久久精品女人毛片国产| 妖精视频一区二区三区| 在线播放视频一区| 欧美日韩性生活片| www.欧美日本韩国| 久久影院午夜片一区| 91丝袜美腿美女视频网站| 97久久久久久久| 中文字幕免费精品| 亚洲午夜激情免费视频| 一级少妇精品久久久久久久| 免费在线观看一区| 天天av天天翘天天综合网色鬼国产| 神马影院我不卡午夜| 韩国av在线免费观看| 青草国产精品久久久久久| 高清欧美性猛交xxxx黑人猛交| 亚洲成人黄色av| 国产精伦一区二区三区| 欧美日韩中文字幕一区二区| av黄色在线网站| caoporn97在线视频| 中文乱码免费一区二区| 精品不卡一区二区三区| www.黄色片| 精品一区二区三区在线播放视频| 日本高清不卡的在线| 久久午夜鲁丝片午夜精品| 91欧美大片| 尤物tv国产一区| 三级电影在线看| 国产精品男女| 精品国产91亚洲一区二区三区婷婷 | 免费观看av网站| 高清精品视频| 精品久久久久99| 麻豆传媒在线看| 久久免费福利| 欧美一级欧美一级在线播放| 亚洲一区二区三区观看| 国产69精品久久| 欧美色精品天天在线观看视频| 日本三级免费观看| 在线看片国产福利你懂的| 亚洲国产综合91精品麻豆| 亚洲精品天堂成人片av在线播放 | 在线观看免费av网址| 成人日韩在线| 激情婷婷欧美| 中文字幕亚洲国产| 天堂在线中文视频| 日韩欧美一区二区三区在线视频| 在线精品视频视频中文字幕| 亚洲午夜精品久久久久久高潮| 精品欧美久久| yw.139尤物在线精品视频| 国产精品免费在线视频| 91精品观看| 欧美激情va永久在线播放| 久久午夜无码鲁丝片| 亚洲国产专区| 日本成熟性欧美| 在线观看视频中文字幕| 久久er99热精品一区二区| 国产日韩精品综合网站| 国产免费的av| aaa欧美日韩| 日韩三级电影| 天天色天天射天天综合网| 亚洲午夜久久久久久久久电影网| 日韩精品视频在线观看视频| 成人在线免费电影| 亚洲欧美一区二区三区久本道91| 天天做天天躁天天躁| 第一福利在线视频| 欧美丝袜第三区| 波多野结衣在线免费观看| 国产乱人伦丫前精品视频| 日韩电影免费在线观看中文字幕| 国产美女免费网站| 中文字幕人成人乱码| 国模gogo一区二区大胆私拍| 欧美精品韩国精品| 国模少妇一区二区三区| 国产精品久久国产精品| 国产女人在线观看| 一区二区三区在线观看网站| 无罩大乳的熟妇正在播放| 免费污视频在线一区| 精品三级av在线| 日本xxxx裸体xxxx| 欧美美女在线| 欧美激情影音先锋| 成人黄色片在线观看| 国产iv一区二区三区| 欧美极品一区二区| 在线午夜影院| 欧美三级三级三级| 亚洲欧美在线不卡| 亚洲精品网址| 国产精品wwwwww| 蜜桃视频在线观看www| 欧美国产精品专区| 免费观看国产精品视频| 亚洲精品伦理| 亚洲人成77777在线观看网| www色aa色aawww| 日韩中文字幕亚洲一区二区va在线 | 中文字幕视频网| 国产乱码精品一区二区三区忘忧草| 久久涩涩网站| 欧美1234区| 69堂成人精品免费视频| 91精品人妻一区二区三区蜜桃欧美| 欧美黄免费看| 91免费版网站入口| yes4444视频在线观看| 欧美午夜无遮挡| 中国黄色片视频| 国产精品a级| 国产玖玖精品视频| 久久久pmvav| 精品久久中文字幕久久av| 亚洲911精品成人18网站| 欧美va久久久噜噜噜久久| 国产成人免费av| 欧洲亚洲在线| 欧美视频一区二区三区…| 性农村xxxxx小树林| 国内自拍一区| 成人av电影免费| 91高清在线观看视频| 欧美日韩国产成人在线免费| 无码人妻aⅴ一区二区三区69岛| 一本色道久久综合亚洲精品不卡| 国产激情一区二区三区在线观看| aaa大片在线观看| 91精品国产91久久久久久一区二区| 18精品爽国产三级网站| 日本不卡123| 日日夜夜精品网站| 日韩漫画puputoon| 国产一区二区日韩| 黄色大全在线观看| 国产精品你懂的在线欣赏| 91香蕉视频导航| 成人中文视频| 成人午夜激情网| 在线观看中文| 亚洲国产精品久久| 国产精品男女视频| 国产亚洲精品7777| 午夜久久久精品| 亚洲五月综合| 国产精品一区视频网站| 黄色在线网站噜噜噜| 日韩黄在线观看| 一级片在线免费播放| 国产精品护士白丝一区av| 亚洲一区二区三区观看| 中文字幕一区二区三三 | www.色亚洲| 亚洲一卡二卡三卡四卡| 男男做爰猛烈叫床爽爽小说| 久久综合影视| 在线精品日韩| 国产精品久久久网站| 欧美在线视频免费观看| 成年在线电影| 日韩三级视频中文字幕| 日韩精品视频免费看| 91麻豆福利精品推荐| 亚洲老女人av| 欧美天天在线| 欧美日韩一区二区视频在线 | 欧美三级三级三级| 欧美片一区二区| 91在线porny国产在线看| 午夜免费高清视频| 国产一区二区中文| 日韩福利在线| 久久gogo国模啪啪裸体| 欧美一级在线亚洲天堂| 麻豆视频在线| 亚洲国产福利在线| 一本大道伊人av久久综合| 亚洲国产精品久久久久秋霞影院| 69精品无码成人久久久久久| 国精品**一区二区三区在线蜜桃 | 精品粉嫩aⅴ一区二区三区四区| 亚洲精品中文字幕乱码三区91| 中文字幕一区二区三区在线播放| 国产欧美视频一区| 蜜桃av一区二区三区电影| 老子影院午夜伦不卡大全| 精品美女在线视频| 精品国产一区二区三区麻豆小说 | www.综合色| 欧美视频一区二区在线观看| 久久99久久久| 国产精品久久久久久久久晋中 | 国产一区视频在线| 欧美xxxhd| 九色91av视频| 男人在线资源站| 亚洲视频视频在线| 污视频在线免费观看| 欧美一级视频精品观看| 亚洲成人av网址| 欧美日韩免费一区| 久久久久成人片免费观看蜜芽| 中文字幕不卡在线播放| 亚洲欧美日本一区| 国产成人精品在线看| 91制片厂毛片| 免播放器亚洲一区| 黑森林福利视频导航| 亚洲经典三级| 999一区二区三区| 影音先锋日韩在线| 日本黄色播放器| 久久高清免费| 亚洲7777| 成人一区二区| 亚洲欧美日产图| 欧美三级三级| 日本在线观看一区二区| 神马久久av| 久久久久久九九| 婷婷精品在线| 久久一区二区三区av| 欧美一区 二区| 国产伦精品一区| 国产精品17p| 久久99精品久久久久子伦| 国产毛片精品| 久久久久成人精品免费播放动漫| 日韩动漫一区| 欧美一区二区综合| 欧洲grand老妇人| 亚洲精品日韩成人| 国产韩日影视精品| av不卡在线免费观看| 羞羞答答成人影院www| 国产精品夜夜夜爽张柏芝| 久久精品亚洲欧美日韩精品中文字幕| 一区不卡字幕| 亚洲成人一区| 精品人妻大屁股白浆无码| 欧美色综合网| 久久精品国产精品亚洲色婷婷| 视频一区视频二区在线观看| caopor在线视频| 91video| 亚洲婷婷在线视频| 久久国产在线视频| 精品成人久久av| 国产女主播喷水视频在线观看| 欧美亚洲国产一区二区三区va| 中文字幕在线观看免费| 日韩一区二区三区四区| 欧美视频xxx| 亚洲欧美日本精品| 麻豆电影在线播放| 欧美人在线观看| 蜜桃视频在线观看播放| 国产精品电影网| 国产精品视频一区二区三区综合| 成人av播放| 欧美手机视频| 欧美日韩福利在线| 日日夜夜免费精品| 欧美日韩一区二区区| 91在线视频18| 青青草华人在线视频| 一区二区三区在线观看动漫| 日产精品久久久| 欧美男同性恋视频网站| 亚洲精选一区二区三区| 亚洲欧洲一区二区三区在线观看| 精品自拍一区| 日本欧美国产在线| 老司机亚洲精品一区二区| 久久国产手机看片| 婷婷综合在线| 毛片一区二区三区四区| 国产一区二区三区在线观看免费 | 少妇性饥渴无码a区免费| 捆绑调教美女网站视频一区| 国产一精品一aⅴ一免费| 国产偷v国产偷v亚洲高清| 激情视频在线播放| 欧洲一区在线电影| 手机在线精品视频| 久久久精品久久久| 另类激情视频| 国产精品一区二区三区在线| 99精品视频在线观看播放| 777精品久无码人妻蜜桃| 国产一区二区三区在线观看精品| 加勒比综合在线| 亚洲大型综合色站| 国产熟女一区二区三区四区| 亚洲欧美国产高清va在线播| 日韩少妇视频| 91久久精品国产| 日韩伦理视频| 成人免费毛片网| 成人97人人超碰人人99| 最新一区二区三区| 欧美日精品一区视频| 久久久pmvav| 26uuu亚洲国产精品| 中文一区二区三区四区| 中文字幕一区二区三区精彩视频| 久久激情一区| 鲁大师私人影院在线观看| 亚洲永久免费av| 国产欧美日韩成人| 色多多国产成人永久免费网站 | 91九色偷拍| 香蕉视频国产精品| 182午夜在线观看| 国产精品视频第一区| 日本黄色中文字幕| 亚洲美女自拍视频| 免费h在线看| 精品国产乱码久久久久久88av| 欧美精品导航| 少妇伦子伦精品无吗| 亚洲自拍欧美精品| 精品国产va久久久久久久| 久久亚洲精品网站| 96视频在线观看欧美| 在线观看日韩片| 国内成人精品2018免费看| 久久国产波多野结衣| 欧美日韩成人综合| 日本不卡不卡| 亚洲一区二区中文字幕| 欧美在线不卡| 久久久久国产免费| 欧美日韩国产色| 巨骚激情综合| 国产综合视频在线观看| 国产精品成人一区二区不卡| 黄色一级片免费的| 一区二区三区自拍| 高清毛片aaaaaaaaa片| 亚洲2020天天堂在线观看| 欧美三级电影在线| 久久9精品区-无套内射无码| 久久精品免费在线观看| 中文字幕无码乱码人妻日韩精品| 色综合伊人色综合网| 四虎永久精品在线| 国产成人一二三区| 9色porny自拍视频一区二区| 日韩中文字幕在线观看视频| 伊人av综合网| 欧美一级大片在线视频| 无码 制服 丝袜 国产 另类| 91亚洲永久精品| 性高潮视频在线观看| www.久久撸.com| 成人激情自拍| 搡女人真爽免费午夜网站| 国产精品国产三级国产a | 日韩精品欧美国产精品忘忧草 | 免费黄网在线观看| av免费精品一区二区三区| 宅男噜噜噜66一区二区| 日本爱爱爱视频| 欧美成人一区二区| 成人片免费看| 国产日产欧美一区二区| 99久精品国产| 91无套直看片红桃| 97在线视频免费观看| 日韩啪啪电影网| 日本美女视频网站| 欧美在线观看一区二区| 色屁屁www国产馆在线观看| 欧美日韩一区在线观看视频| 狠狠色综合播放一区二区| 日韩免费视频一区二区视频在线观看| 自拍偷拍亚洲欧美| 久久大胆人体视频| 极品粉嫩美女露脸啪啪| 欧美日韩国产精品一区二区三区四区 | 久久精品中文字幕电影| 亚州av一区| 不许穿内裤随时挨c调教h苏绵| 欧美性色欧美a在线播放|