主頁 >  其他 > React面試題總結

React面試題總結

2021-01-19 11:16:37 其他

React面試題總結內容主要包括基礎知識,React 組件,React Redux,React 路由

基本知識

1. 區分Real DOM和Virtual DOM

Real DOMVirtual DOM
更新緩慢,更新更快,
可以直接更新 HTML,無法直接更新 HTML,
如果元素更新,則創建新DOM,如果元素更新,則更新 JSX ,
DOM操作代價很高,DOM 操作非常簡單,
消耗的記憶體較多,很少的記憶體消耗,

2. 什么是React?

  • React 是 Facebook 在 2011 年開發的前端 JavaScript 庫,
  • 它遵循基于組件的方法,有助于構建可重用的UI組件,
  • 它用于開發復雜和互動式的 Web 和移動 UI,
  • 盡管它僅在 2015 年開源,但有一個很大的支持社區,

3. React有什么特點?

React的主要功能如下:

1)它使用虛擬DOM 而不是真正的DOM,
2)它可以用服務器端渲染
3)它遵循單向資料流或資料系結,

4. 列出React的一些主要優點,

React的一些主要優點是:

1)它提高了應用的性能
2)可以方便地在客戶端和服務器端使用
3)由于 JSX,代碼的可讀性很好
4)React 很容易與 Meteor,Angular 等其他框架集成
5)使用React,撰寫UI測驗用例變得非常容易

5. React有哪些限制?

React的限制如下:

1)React 只是一個庫,而不是一個完整的框架
2)它的庫非常龐大,需要時間來理解
3)新手程式員可能很難理解
4)編碼變得復雜,因為它使用行內模板和 JSX

6. 什么是JSX?

JSX 是J avaScript XML 的簡寫,是 React 使用的一種檔案,它利用 JavaScript 的表現力和類似 HTML 的模板語法,這使得 HTML 檔案非常容易理解,此檔案能使應用非常可靠,并能夠提高其性能,下面是JSX的一個例子:

render(){
 return(
 <div>
 <h1> Hello World from Edureka!!</h1>
 </div>
 );
}

7. 你了解 Virtual DOM 嗎?解釋一下它的作業原理,

Virtual DOM 是一個輕量級的 JavaScript 物件,它最初只是 real DOM 的副本,它是一個節點樹,它將元素、它們的屬性和內容作為物件及其屬性, React 的渲染函式從 React 組件中創建一個節點樹,然后它回應資料模型中的變化來更新該樹,該變化是由用戶或系統完成的各種動作引起的,

Virtual DOM 作業程序有三個簡單的步驟,

1)每當底層資料發生改變時,整個 UI 都將在 Virtual DOM 描述中重新渲染,
2)然后計算之前 DOM 表示與新表示的之間的差異,
3)完成計算后,將只用實際更改的內容更新 real DOM,

8. 為什么瀏覽器無法讀取JSX?

瀏覽器只能處理 JavaScript 物件,而不能讀取常規 JavaScript 物件中的 JSX,所以為了使瀏覽器能夠讀取 JSX,首先,需要用像 Babel 這樣的 JSX 轉換器將 JSX 檔案轉換為 JavaScript 物件,然后再將其傳給瀏覽器,

9. 與 ES5 相比,React 的 ES6 語法有何不同?

以下語法是 ES5 與 ES6 中的區別:

1)require 與 import

// ES5
var React = require('react');

// ES6
import React from 'react';

2)export 與 exports

// ES5
module.exports = Component;

// ES6
export default Component;

3)component 和 function

// ES5
var MyComponent = React.createClass({
 render: function() {
 return
 <h3>Hello Edureka!</h3>;
 }
});

// ES6
class MyComponent extends React.Component {
 render() {
 return
 <h3>Hello Edureka!</h3>;
 }
}

4)props

// ES5
var App = React.createClass({
 propTypes: { name: React.PropTypes.string },
 render: function() {
 return
 <h3>Hello, {this.props.name}!</h3>;
 }
});
?
// ES6
class App extends React.Component {
 render() {
 return
 <h3>Hello, {this.props.name}!</h3>;
 }
}

5)state

// ES5
var App = React.createClass({
 getInitialState: function() {
 return { name: 'world' };
 },
 render: function() {
 return
 <h3>Hello, {this.state.name}!</h3>;
 }
});
?
// ES6
class App extends React.Component {
 constructor() {
 super();
 this.state = { name: 'world' };
 }
 render() {
 return
 <h3>Hello, {this.state.name}!</h3>;
 }
}

10. React與Angular有何不同?

主題ReactAngular
體系結構只有 MVC 中的 View完整的 MVC
渲染可以在服務器端渲染客戶端渲染
DOM使用 virtual DOM使用 real DOM
資料系結單向資料系結雙向資料系結
除錯編譯時除錯運行時除錯
作者FacebookGoogle

React面試題總結所有內容都已經整理成PDF檔案,需要可以點擊這里免費領取,還包括前端CSS面試題檔案,JavaScript面試題檔案,Vue面試題檔案,大廠面試題檔案,都可以免費領取!

React 組件

1. 你理解“在React中,一切都是組件”這句話,
2. 解釋 React 中 render() 的目的,
3. 如何將兩個或多個組件嵌入到一個組件中?
4. 什么是 Props?
5. React中的狀態是什么?它是如何使用的?
6. 區分狀態和 props
7. 如何更新組件的狀態?
8. React 中的箭頭函式是什么?怎么用?
9. 區分有狀態和無狀態組件,
10. React組件生命周期的階段是什么?
11. 詳細解釋 React 組件的生命周期方法,
12. React中的事件是什么?
13. 如何在React中創建一個事件?
14. React中的合成事件是什么?
15. 你對 React 的 refs 有什么了解?
16. 列出一些應該使用 Refs 的情況,
17. 如何模塊化 React 中的代碼?
18. 如何在 React 中創建表單
19. 你對受控組件和非受控組件了解多少?
20. 什么是高階組件(HOC)?
21. 你能用HOC做什么?
22. 什么是純組件?
23. React 中 key 的重要性是什么?

React Redux

1. MVC框架的主要問題是什么?
2. 解釋一下 Flux
3. 什么是Redux?
4. Redux遵循的三個原則是什么?
5. 你對“單一事實來源”有什么理解?
6. 列出 Redux 的組件,
7. 資料如何通過 Redux 流動?
8. 如何在 Redux 中定義 Action?
9. 解釋 Reducer 的作用,
10. Store 在 Redux 中的意義是什么?
11. Redux與Flux有何不同?
12. Redux 有哪些優點?

React 路由

1. 什么是React 路由?
2. 為什么React Router v4中使用 switch 關鍵字 ?
3. 為什么需要 React 中的路由?
4. 列出 React Router 的優點,
5. React Router與常規路由有何不同?

需要可以點擊這里免費領取,還包括前端CSS面試題檔案,JavaScript面試題檔案,Vue面試題檔案,大廠面試題檔案,都可以免費領取!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/250640.html

標籤:其他

上一篇:極客日報第 52 期:雷軍兌現當年豪言;聯發科給每名員工發 10 萬大紅包;谷歌21億收購Fitbit;微軟等公司源代碼被公開出售,打包價100萬美元

下一篇:Deno 沖上榜首,Vue.js 首次屈居第二,JavaScript 2020 年度“新起之秀”都有誰?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more