今天的React題沒有太多的故事……

半個月前出了248個Vue的知識點,受到很多朋友的關注,都強烈要求再出多些React相前的面試題,受到大家的邀請,我又找了20多個React的使用者,他們給出了328道React的面試題,由我整理好發給大家,同時發布在了前端面試每日3+1的React專題,希望對大家有所幫助,同時大家可以到上面作答,看自己有多少能答得上來的,答案就先不公布了(答案都在你們的心中)...

前端面試每日3+1(今天第94天)

  • 《前端面試每日3+1》,學習不打烊,充電加油只為遇到更好的自己,365天無節假日,每天早上5點純手工發布面試題(死磕自己,愉悅大家)。
  • 希望大家在這浮誇的前端圈裡,保持冷靜,堅持每天花20分鐘來學習與思考。
  • 在這千變萬化,類庫層出不窮的前端,建議大家不要等到找工作時,才狂刷題,提倡每日學習!(不忘初心,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大小?
  • 在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的理解?有哪些運用場景?

推薦閱讀:

相关文章