今天的React題沒有太多的故事……
半個月前出了248個Vue的知識點,受到很多朋友的關注,都強烈要求再出多些React相前的面試題,受到大家的邀請,我又找了20多個React的使用者,他們給出了328道React的面試題,由我整理好發給大家,同時發布在了前端面試每日3+1的React專題,希望對大家有所幫助,同時大家可以到上面作答,看自己有多少能答得上來的,答案就先不公布了(答案都在你們的心中)...
前端面試每日3+1(今天第94天)
- 《前端面試每日3+1》,學習不打烊,充電加油只為遇到更好的自己,365天無節假日,每天早上5點純手工發布面試題(死磕自己,愉悅大家)。
- 希望大家在這浮夸的前端圈里,保持冷靜,堅持每天花20分鐘來學習與思考。
- 在這千變萬化,類庫層出不窮的前端,建議大家不要等到找工作時,才狂刷題,提倡每日學習?。?strong>不忘初心,html、css、javascript才是基石!)
超多題預警開始……
- 題目更新時間
- 第一次:2019.07.19 -> 328 道
React | ReactNative | React-Router | Redux/Mobox | Flux
React
- 什么時候使用狀態管理器?
- render函數中return如果沒有使用()會有什么問題?
- componentWillUpdate可以直接修改state的值嗎?
- 說說你對React的渲染原理的理解
- 什么渲染劫持?
- React Intl是什么原理?
- 你有使用過React Intl嗎?
- 怎么實現React組件的國際化呢?
- 說說Context有哪些屬性?
- 怎么使用Context開發組件?
- 為什么React并不推薦我們優先考慮使用Context?
- 除了實例的屬性可以獲取Context外哪些地方還能直接獲取Context呢?
- childContextTypes是什么?它有什么用?
- contextType是什么?它有什么用?
- Consumer向上找不到Provider的時候怎么辦?
- 有使用過Consumer嗎?
- 在React怎么使用Context?
- React15和16別支持IE幾以上?
- 說說你對windowing的了解
- 舉例說明React的插槽有哪些運用場景?
- 你有用過React的插槽(Portals)嗎?怎么用?
- React的嚴格模式有什么用處?
- React如何進行代碼拆分?拆分的原則是什么?
- React組件的構造函數有什么作用?
- React組件的構造函數是必須的嗎?
- React中在哪捕獲錯誤?
- React怎樣引入svg的文件?
- 說說你對Relay的理解
- 在React中你有經常使用常量嗎?
- 為什么說React中的props是只讀的?
- 你有使用過formik庫嗎?說說它的優缺點
- 你有用過哪些React的表單庫嗎?說說它們的優缺點
- 如果組件的屬性沒有傳值,那么它的默認值是什么?
- 可以使用TypeScript寫React應用嗎?怎么操作?
-
super()
和super(props)
有什么區別? - 你有使用過loadable組件嗎?它幫我們解決了什么問題?
- 你有使用過suspense組件嗎?它幫我們解決了什么問題?
- 怎樣動態導入組件?
- 如何給非控組件設置默認的值?
- 怎么在React中引入其它的UI庫,例如Bootstrap
- 怎樣將事件傳遞給子組件?
- 怎樣使用Hooks獲取服務端數據?
- 使用Hooks要遵守哪些原則?
- render方法的原理你有了解嗎?它返回的數據類型是什么?
- useEffect和useLayoutEffect有什么區別?
- 在React項目中你用過哪些動畫的包?
- React必須使用JSX嗎?
- 自定義組件時render是可選的嗎?為什么?
- 需要把keys設置為全局唯一嗎?
- 怎么定時更新一個組件?
- React根據不同的環境打包不同的域名?
- 使用webpack打包React項目,怎么減小生成的js大?。?/li>
- 在React中怎么使用async/await?
- 你閱讀了幾遍React的源碼?都有哪些收獲?你是怎么閱讀的?
- 什么是React.forwardRef?它有什么作用?
- 寫個例子說明什么是JSX的內聯條件渲染
- 在React中怎么將參數傳遞給事件?
- React的事件和普通的HTML事件有什么不同?
- 在React中怎么阻止事件的默認行為?
- 你最喜歡React的哪一個特性(說一個就好)?
- 在React中什么時候使用箭頭函數更方便呢?
- 你最不喜歡React的哪一個特性(說一個就好)?
- 說說你對React的reconciliation(一致化算法)的理解
- 使用PropTypes和Flow有什么區別?
- 怎樣有條件地渲染組件?
- 在JSX中如何寫注釋?
- constructor和getInitialState有不同?
- 寫例子說明React如何在JSX中實現for循環
- 為什么建議Fragment包裹元素?它的簡寫是什么?
- 你有用過React.Fragment嗎?說說它有什么用途?
- 在React中你有遇到過安全問題嗎?怎么解決?
- React中如何監聽state的變化?
- React什么是有狀態組件?
- React v15中怎么處理錯誤邊界?
- React Fiber它的目的是解決什么問題?
- React為什么不要直接修改state?如果想修改怎么做?
- create-react-app有什么好處?
- 裝飾器(Decorator)在React中有什么應用?
- 使用高階組件(HOC)實現一個loading組件
- 如何用React實現滾動動畫?
- 說出幾點你認為的React最佳實踐
- 你是如何劃分React組件的?
- 舉例說明如何在React創建一個事件
- 如何更新組件的狀態?
- 怎樣將多個組件嵌入到一個組件中?
- React的render中可以寫{if else}這樣的判斷嗎?
- React為什么要搞一個Hooks?
- React Hooks幫我們解決了哪些問題?
- 使用React的memo和forwardRef包裝的組件為什么提示children類型不對?
- 有在項目中使用過Antd嗎?說說它的好處
- 在React中如果去除生產環境上的sourcemap?
- 在React中怎么引用sass或less?
- 組件卸載前,加在DOM元素的監聽事件和定時器要不要手動清除?為什么?
- 為什么標簽里的for要寫成htmlFor呢?
- 狀態管理器解決了什么問題?什么時候用狀態管理器?
- 狀態管理器它精髓是什么?
- 函數式組件有沒有生命周期?為什么?
- 在React中怎么引用第三方插件?比如說jQuery等
- React的觸摸事件有哪幾種?
- 路由切換時同一組件無法重新渲染的有什么方法可以解決?
- React16新特性有哪些?
- 你有用過哪些React的UI庫?它們的優缺點分別是什么?
-
<div onClick={handlerClick}>單擊</div>
和<div onClick={handlerClick(1)}>單擊</div>
有什么區別? - 在React中如何引入圖片?哪種方式更好?
- 在React中怎么使用字體圖標?
- React的應用如何打包發布?它的步驟是什么?
- ES6的語法'...'在React中有哪些應用?
- 如何封裝一個React的全局公共組件?
- 在React中組件的props改變時更新組件的有哪些方法?
- immutable的原理是什么?
- 你對immutable有了解嗎?它有什么作用?
- 如何提高組件的渲染效率呢?
- 在React中如何避免不必要的render?
- render在什么時候會被觸發?
- 寫出React動態改變class切換組件樣式
- React中怎么操作虛擬DOM的Class屬性?
- 為什么屬性使用className而不是class呢?
- 請說下react組件更新的機制是什么?
- 怎么在JSX里屬性可以被覆蓋嗎?覆蓋的原則是什么?
- 怎么在JSX里使用自定義屬性?
- 怎么防止HTML被轉義?
- 經常用React,你知道React的核心思想是什么嗎?
- 在React中我們怎么做靜態類型檢測?都有哪些方法可以做到?
- 在React中組件的state和setState有什么區別?
- React怎樣跳過重新渲染?
- React怎么判斷什么時候重新渲染組件呢?
- 什么是React的實例?函數式組件有沒有實例?
- 在React中如何判斷點擊元素屬于哪一個組件?
- 在React中組件和元素有什么區別?
- 在React中聲明組件時組件名的第一個字母必須是大寫嗎?為什么?
- 舉例說明什么是高階組件(HOC)的反向繼承?
- 有用過React Devtools嗎?說說它的優缺點分別是什么?
- 舉例說明什么是高階組件(HOC)的屬性代理?
- React的isMounted有什么作用?
- React組件命名推薦的方式是哪個?為什么不推薦使用displayName?
- React的displayName有什么作用?
- 說說你對React的組件命名規范的理解
- 說說你對React的項目結構的理解
- React16廢棄了哪些生命周期?為什么?
- 怎樣在React中開啟生產模式?
- React中getInitialState方法的作用是什么?
- React中你知道creatClass的原理嗎?
- React中驗證props的目的是什么?
- React中你有使用過getDefaultProps嗎?它有什么作用?
- React中你有使用過propType嗎?它有什么作用?
- React中怎么檢驗props?
- React.createClass和extends Component的區別有哪些?
- 高階組件(HOC)有哪些優點和缺點?
- 給組件設置很多屬性時不想一個個去設置有什么辦法可以解決這問題呢?
- React16跟之前的版本生命周期有哪些變化?
- 怎樣實現React組件的記憶?原理是什么?
- 創建React動畫有哪些方式?
- 為什么建議不要過渡使用Refs?
- 在React使用高階組件(HOC)有遇到過哪些問題?如何解決?
- 在使用React過程中什么時候用高階組件(HOC)?
- 說說React diff的原理是什么?
- React怎么提高列表渲染的性能?
- 使用ES6的class定義的組件不支持mixins了,那用什么可以替代呢?
- 為何說虛擬DOM會提高性能?
- React的性能優化在哪個生命周期?它優化的原理是什么?
- 你知道的React性能優化有哪些方法?
- 舉例說明在React中怎么使用樣式?
- React有哪幾種方法來處理表單輸入?
- 什么是淺層渲染?
- 你有做過React的單元測試嗎?如果有,用的是哪些工具?怎么做的?
- 在React中什么是合成事件?有什么用?
- 使用React寫一個todo應用,說說你的思路
- React16的reconciliation和commit分別是什么?
- React的函數式組件有沒有生命周期?
- useState和this.state的區別是什么?
- 請說說什么是useImperativeHandle?
- 請說說什么是useReducer?
- 請說說什么是useRef?
- 請說說什么是useEffect?
- 舉例說明useState
- 請說說什么是useState?為什么要使用useState?
- 請描述下你對React的新特性Hooks的理解?它有哪些應用場景?
- 說說你對Error Boundaries的理解
- 說說你對Fiber架構的理解
- 說說你是怎么理解React的業務組件和技術組件的?
- 為什么建議setState的第一個參數是callback而不是一個對象呢?
- 展示組件和容器組件有什么區別?
- Mern和Yeoman腳手架有什么區別?
- 你有在項目中使用過Yeoman腳手架嗎?
- 你有在項目中使用過Mern腳手架嗎?
- shouldComponentUpdate方法是做什么的?
- 怎樣在React中使用innerHTML?
- 你有寫過React的中間件插件嗎?
- React的中間件機制是怎么樣的?這種機制有什么作用?
- React中你用過哪些第三方的中間件?
- 不用腳手架,你會手動搭建React項目嗎?
- 請說說React中Portal是什么?
- React中修改prop引發的生命周期有哪幾個?
- React多個setState調用的原理是什么?
- React中調用setState會更新的生命周期有哪幾個?
- React中setState的第二個參數作用是什么呢?
- React中的setState是同步還是異步的呢?為什么state并不一定會同步更新?
- React中的setState批量更新的過程是什么?
- React中的setState執行機制是什么呢?
- 在React中遍歷的方法有哪些?它們有什么區別呢?
- 請說說你對React的render方法的理解
- props.children.map和js的map有什么區別?為什么優先選擇React的?
- 有用過React的嚴格模式嗎?
- React中的setState和replaceState的區別是什么?
- React中的setState缺點是什么呢?
- 有用過React的Fragment嗎?它的運用場景是什么?
- React組件間共享數據方法有哪些?
- React的狀態提升是什么?使用場景有哪些?
- 簡單描述下你有做過哪些React項目?
- 在構造函數中調用super(props)的目的是什么?
- 你是如何學習React的?
- 從舊版本的React升級到新版本的React有做過嗎?有遇到過什么坑?
- 你用過React版本有哪些?
- 有用過React的服務端渲染嗎?怎么做的?
- React的mixins有什么作用?適用于什么場景?
- React怎么拿到組件對應的DOM元素?
- 請描述下事件在React中的處理方式是什么?
- JSX和HTML有什么區別?
- React的書寫規范有哪些?
- create-react-app創建新運用怎么解決卡的問題?
- 使用React的方式有哪幾種?
- 說說你對reader的context的理解
- 同時引用這三個庫React.js、React-dom.js和babel.js它們都有什么作用?
- 你知道Virtual DOM的工作原理嗎?
- 你閱讀過React的源碼嗎?簡要說下它的執行流程
- React中怎樣阻止組件渲染?
- React非兄弟組件如何通信?
- React兄弟組件如何通信?
- React非父子組件如何通信?
- React父子組件如何通信?
- React組件間的通信有哪些?
- 類組件和函數式組件有什么區別?
- React自定義組件你寫過嗎?說說看都寫過哪些?
- React組件的state和props兩者有什么區別?
- React有幾種構建組件的方式?可以寫出來嗎?
- React中遍歷時為什么不用索引作為唯一的key值?
- React中的key有什么作用?
- React中除了在構造函數中綁定this,還有別的方式嗎?
- 在React中頁面重新加載時怎樣保留數據?
- 請描述下React的事件機制
- 怎樣在React中創建一個事件?
- 在React中無狀態組件有什么運用場景?
- 描述下在React中無狀態組件和有狀態組件的區別是什么?
- 寫一個React的高階組件(HOC)并說明你對它的理解
- React中可以在render訪問refs嗎?為什么?
- React中refs的作用是什么?有哪些應用場景?
- 請描述你對純函數的理解?
- 受控組件和非受控組件有什么區別?
- React中什么是非控組件?
- React中什么是受控組件?
- React中發起網絡請求應該在哪個生命周期中進行?為什么?
- 說說React的生命周期有哪些?
- 說說你對“在React中,一切都是組件”的理解
- 寫React你是用es6還是es5的語法?有什么區別?
- 瀏覽器為什么無法直接JSX?怎么解決呢?
- 在使用React過程中你都踩過哪些坑?你是怎么填坑的?
- 說說你喜歡React的原因是什么?它有什么優缺點?
- 如何解決引用類型在pureComponent下修改值的時候,頁面不渲染的問題?
- createElement與cloneElement兩者有什么區別?
- 解釋下React中Element 和Component兩者的區別是什么?
- 解釋下React中component和pureComponent兩者的區別是什么?
- React的虛擬DOM和vue的虛擬DOM有什么區別?
- 你覺得React上手快不快?它有哪些限制?
- 說說你對聲明式編程的理解?
- React與angular、vue有什么區別?
- React是哪個公司開發的?
- React是什么?它的主要特點是什么?
- 簡要描述下你知道的React工作原理是什么?
- 在React中怎樣改變組件狀態,以及狀態改變的過程是什么?
- 在React中你是怎么進行狀態管理的?
- React聲明組件有哪幾種方法,各有什么不同?
ReactNative
- 如何在React Native中設置環境變量?
- 請描述下Code Push的原理是什么?
- React Native怎樣查看日記?
- React Native怎樣測試?
- React Native怎樣調試?
- React Native和React有什么區別?
- 有做過React Native項目嗎?
React-Router
- React-Router怎么獲取歷史對象?
- React-Router怎么獲取URL的參數?
- 在history模式中push和replace有什么區別?
- React-Router怎么設置重定向?
- React-Router 4中
<Router>
組件有幾種類型? - React-Router 3和React-Router 4有什么變化?添加了什么好的特性?
- React-Router的實現原理是什么?
- React-Router 4的switch有什么用?
- React-Router的路由有幾種模式?
- React-Router 4怎樣在路由變化時重新渲染同一個組件?
- React-Router的
<Link>
標簽和<a>
標簽有什么區別? - React的路由和普通路由有什么區別?
- 請你說說React的路由的優缺點?
- 請你說說React的路由是什么?
Redux/Mobox
- 你有了解Rxjs是什么嗎?它是做什么的?
- 在Redux中怎么發起網絡請求?
- Redux怎樣重置狀態?
- Redux怎樣設置初始狀態?
- Context api可以取代Redux嗎?為什么?
- 推薦在reducer中觸發Action嗎?為什么?
- Redux怎么添加新的中間件?
- redux-saga和redux-thunk有什么本質的區別?
- 在React中你是怎么對異步方案進行選型的?
- 你知道redux-saga的原理嗎?
- 你有使用過redux-saga中間件嗎?它是干什么的?
- Redux中異步action和同步action最大的區別是什么?
- Redux和vuex有什么區別?
- Redux的中間件是什么?你有用過哪些Redux的中間件?
- 說說Redux的實現流程
- Mobx的設計思想是什么?
- Redux由哪些組件構成?
- Mobx和Redux有什么區別?
- 在React項目中你是如何選擇Redux和Mobx的?說說你的理解
- 你有在React中使用過Mobx嗎?它的運用場景有哪些?
- Redux的thunk作用是什么?
- Redux的數據存儲和本地儲存有什么區別?
- 在Redux中,什么是reducer?它有什么作用?
- 舉例說明怎么在Redux中定義action?
- 在Redux中,什么是action?
- 在Redux中,什么是store?
- 為什么Redux能做到局部渲染呢?
- 說說Redux的優缺點分別是什么?
- Redux和Flux的區別是什么?
- Redux它的三個原則是什么?
- 什么是單一數據源?
- 什么是Redux?說說你對Redux的理解?有哪些運用場景?
Flux
- 請說說點擊按鈕觸發到狀態更改,數據的流向?
- 請描述下Flux的思想
- 什么是Flux?說說你對Flux的理解?有哪些運用場景?