自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

過五關(guān)!React高頻面試題指南

譯文 精選
開發(fā) 前端
React高頻面試題

  作者丨Michael Pautov

  譯者 | 翟珂

  審校丨Noe

  談到前端開發(fā),ReactJS是目前最受歡迎的選擇之一。下面列出的是最常問到的ReactJS面試題。

  從易到難,讓我們看一下五個高頻面試題。

為什么不使用Angular 而要使用React呢?

  使用React構(gòu)建動態(tài)網(wǎng)絡(luò)應(yīng)用更簡單,因為它編碼少功能多,但對于JavaScript應(yīng)用程序,代碼往往會變得復雜。

  由于在React應(yīng)用中使用了虛擬DOM,網(wǎng)絡(luò)應(yīng)用的速度會更快。虛擬DOM不會更新實際DOM中的所有組件,而是分析其先前的狀態(tài),只更新那些已經(jīng)改變的組件。

  換句話說,每個React項目的構(gòu)件可以通過使用組件創(chuàng)建新的構(gòu)件來重新使用。為了節(jié)省開發(fā)時間,這些預建的組件都封裝了自己的邏輯和控制,可以在整個程序中共享。

  React有單向的數(shù)據(jù)流。在React應(yīng)用程序的設(shè)計過程中,我們通常將子組件分層在其父組件內(nèi)。由于數(shù)據(jù)以單一渠道流動,故障排除也更簡單,更容易確定程序中的問題所在。

  Facebook已經(jīng)發(fā)布了一個瀏覽器插件,使我們能夠更容易地調(diào)試React應(yīng)用程序。由于這一改進,調(diào)試React網(wǎng)絡(luò)應(yīng)用變得更快、更簡單了。

Redux thunks的作用是什么?

      使用Redux thunk,你可以建立返回函數(shù)而不是動作的動作創(chuàng)建器。通過使用delay函數(shù),一個動作可以被延遲,直到滿足一個特定的條件。你可以將兩個存儲方法getState和dispatch傳遞給內(nèi)部函數(shù)。

  必須先使用applyMiddleware()方法:

import{ createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './reducers/index';
const store = createStore(
rootReducer,
applyMiddleware(thunk)
);

React中的useState()是做什么的?

  useState() React Hook允許在功能組件中使用狀態(tài)變量。這種方法對于動態(tài)控制DOM是非常好的。

  SetCounter方法是UseState(0)的第二個參數(shù),它返回一個元組,count是第一個參數(shù),setCounter方法是第二個參數(shù)。

..
const [count, setCounter] = useState(0);
const [otherStuffs, setOtherStuffs] = useState(..); ..
const setCount = () => {
setCounter(count + 1);
setOtherStuffs(..);
..
};

  要更新count,可以使用setCounter()方法。在這個例子中,SetCounter()是在setCount方法中使用的,這里可以采取各種不同的行動。當我們使用鉤子時,我們可能使我們的代碼更有用,如果不是絕對必要的話,可以避免使用基于類的組件。

useEffect鉤子有用嗎?

      useEffect React Hook可以用來在功能組件中產(chǎn)生邊際效用。如果你的組件需要在渲染后或狀態(tài)改變后進行某些操作,那么你可以使用useEffect來通知React。

  React會記住并在DOM更新性能完成后立即執(zhí)行你提供的函數(shù)。除了更新頁面標題之外,這個函數(shù)也可以用來從Web服務(wù)器上獲取數(shù)據(jù)。

  useEffect鉤子會在組件的第一次渲染和隨后的每次更新后自動啟用。完成后,DOM將被修改。

  用于React的鉤子??梢杂脙蓚€參數(shù)來使用useEffect:

  useEffect(callback[, dependencies])

  回調(diào)1代表包含邊際效用的函數(shù),它在DOM修改后立即被調(diào)用。第二個參數(shù)的依賴數(shù)組可以是你想要的任何東西。只要渲染之間的依賴關(guān)系改變,useEffect()就會被調(diào)用。

import { useEffect } from 'react';
function WelcomeGreetings({ name }) {
const msg = `Hi, ${name}!`;
useEffect(() => {
document.title = `Welcome to you ${name}`;
}, [name]);
return <div>{msg}</div>;
}

  邊際效用是指由于前面的代碼而發(fā)生的任何事情,但并不直接修改。因此,useEffect現(xiàn)在包含一個用于更新文檔標題的回調(diào)。

       如果你想避免每次使用useEffect(callback, [name])時,WelcomeGreetings組件的演示文稿標題出現(xiàn)變化,你可能需要指定名稱作為useEffect的效果依賴。

增強React性能的一些方法

  • 使用useMemo函數(shù)()
  • 這個React鉤子可以用來緩存CPU密集型的任務(wù)。
  • 對于某些React應(yīng)用程序,持續(xù)使用CPU密集型函數(shù)可能會導致組件重新渲染時的延遲渲染。useMemo()鉤子可用于緩存此類程序。只有必要時,才使用CPU密集型方法useMemo()。
  • 保持一個合適的狀態(tài)
  • 你希望在可行的情況下讓狀態(tài)盡可能地接近你想要的位置。
  • React應(yīng)用程序的父組件可能包括大量冗余的狀態(tài),這使得理解和管理代碼更加困難。當有眾多狀態(tài)時,整個事情就會重演。
  • 最好的辦法是隔離那些對父組件并不關(guān)鍵的狀態(tài)。
  • 擺脫遲緩加載。
  • 懶惰加載將網(wǎng)絡(luò)應(yīng)用性能問題的風險降到最低,用這種技術(shù)加快React應(yīng)用的啟動速度。

  原文鏈接:https://hackernoon.com/top-5-react-interview-questions-in-2022

譯者介紹

  翟珂,51CTO社區(qū)編輯,目前在杭州從事軟件研發(fā)工作,做過電商、征信等方面的系統(tǒng),享受分享知識的過程,充實自己的生活。

責任編輯:張潔 來源: 51CTO技術(shù)棧
相關(guān)推薦

2021-03-29 08:02:35

面試簡歷項目

2021-02-23 12:43:39

Redis面試題緩存

2021-01-22 11:58:30

MySQL數(shù)據(jù)庫開發(fā)

2019-12-26 09:52:33

Redis集群線程

2021-08-05 05:04:50

熱部署模型字節(jié)

2019-11-26 10:30:11

CSS前端面試題

2020-08-31 12:20:07

Python面試題代碼

2020-03-03 17:47:07

UDP TCP面試題

2019-03-23 20:00:04

面試react.js前端

2021-12-08 11:18:21

Spring Bean面試題生命周期

2022-04-15 09:23:29

Kubernetes面試題

2020-06-04 14:40:40

面試題Vue前端

2009-05-13 09:06:26

面試技巧求職技巧

2023-11-13 07:37:36

JS面試題線程

2011-03-24 13:27:37

SQL

2021-01-21 08:00:50

嵌入式筆試面試

2021-11-02 10:10:38

面試元素語言

2025-03-20 07:54:57

2010-08-24 14:44:28

職場

2023-10-20 15:58:27

Python刪除指定字符
點贊
收藏

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