
React Native 在近幾年因為可以有效統合前端技術路線受到許多公司的歡迎,在大前端時代之下,像這類型的框架也能有效地提升個人的技術廣度。
不過如果你想要去面試,或者開始踏入這個領域,面試該怎麼準備呢?
以下我們列出了四個大方向供您研究,這些內容都是來自針對 React Native 面試過超過 20 人的技術主管,相信能給您一定的參考價值!
文章目錄
一、React Native 和 Native 及 hybrid APP 有什麼差異?
簡單回答:Native APP 是在個別平台用各自語言撰寫 APP,例如:以 Swift 撰寫 iOS 程式、以 Kotlin 撰寫 android 程式。
而 hybrid app 是以 webview 為基礎,開發者基本上更接近於寫網頁在開發 APP。
而 React Native 和他們不同的點在於只是以 javascript 撰寫業務邏輯,框架本身會和原生組建介接以達到效能及開發資源的優勢。
這類問題主要是在考驗您對 React Native 在技術譜系中位置的理解,建議也可以從效能、社區成熟度、開發工具以及熱加載上補充回答。另外就是隨著您越來越資深,這題也可以自我審視該朝哪個方向深入。

二、可以簡單介紹 React Native 生命週期嗎?
簡單回答:可已從三個角度回應,元件載入 / 元件更新 / 元件移除。載入時依序經過 constructor –> getDerivedStateFromProps –> shouldCOmponentUpdate –> render –> componentDidmount ; 更新時依序經過 getDerivedStateFromProps –> shouldCOmponentUpdate –> render –> getSnapsjotBeforeUpdate –> componentDidUpdate ; 移除時經過 componentWillUmount
這題關鍵在於提供自上而下的觀點做分類,不要急著背出相關函數的名稱。
這題可能會延伸到效能調校的部分,可以準備一下自己的看法。此外,這題也是和 React 共通的考題。

三、常用哪些狀態管理工具?跟 Redux 熟嗎?
簡單回答:過往比較習慣使用 Redux 作為全局資料管理工具。它就像個公佈欄可以跟 props 有很好的整合及性質,協助描述 APP 資料狀態。近期則比較常使用 React 內建的 Context API,使用的概念大同小異。
這個題目可能的延伸方向有 Redux 原理概述以及該如何適度的做資料的管理(哪些該進全域?哪些該進 state)。
建議梳理一下自己對資料管理的原則,這邊沒有標準答案,但能看出對資料流的掌握度。

四、有沒有使用過 codepush 等熱加載工具?他們的原理是什麼?
簡單回答:codepush 是微軟提供的服務,呼叫 react native 的打包命令,將當前環境的非 native 程式碼全量打包成一個 bundle 檔案,後續可以進行發布。
這個做法可以一定程度繞過 APP 審核,適合高速迭代的產品使用。

總結
以上四個方向不只是面試時可能會被問到也可以當成對自己學習技術時的確認座標,更多關於心法的部分可以參考 React Native 開發雙平台這門課。理解問題背後的原理往往才是變得更強的關鍵!
一同補給 React Native 能力
最新 React Native 技術|打造雙平台電商 App

沒有開發過 App 也沒問題!這門課會從多個實作練習中,帶你學會 React Natvie 語法,也會帶你複習 JavaScript 及 React 基本觀念!
▍透過實作練習React Natvie
✔️ 計算機 App:學會排版
✔️ 公共設施查詢 App:掌握 12 種業界常見 Component
✔️ 藝文活動查詢 App:學會換頁
✔️ 天氣預報 App:學會製作動畫
✔️ 電商 App:學會串金流+上架雙平台