찾다
웹 프론트엔드JS 튜토리얼(컬렉션) React에서 흔히 볼 수 있는 면접 질문 소개

이 기사는 React에서 자주 묻는 질문을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

다음은 React에 대해 일반적으로 사용되는 면접 질문 목록입니다.

면접관이든 채용 담당자이든 다음 질문을 참고할 수 있습니다.

북마크에 추가하세요

React의 작동 방식

React는 가상 DOM(가상 DOM)을 만듭니다. 구성 요소의 상태가 변경되면 React는 먼저 "diffing" 알고리즘을 통해 가상 DOM의 변경 사항을 표시하고 두 번째 단계는 조정이며 DOM은 diff 결과로 업데이트됩니다.

React를 사용하면 어떤 장점이 있나요?

렌더링 기능만 봐도 컴포넌트가 어떻게 렌더링되는지 쉽게 알 수 있습니다

JSX의 도입으로 컴포넌트의 코드를 더 읽기 쉽고 레이아웃을 더 쉽게 이해할 수 있습니다. 또는 구성 요소가 서로 참조하는 방식

서버 측 렌더링을 지원하여 SEO와 성능을 향상할 수 있습니다

테스트가 쉽습니다

React는 뷰 레이어에만 초점을 맞추기 때문에 다른 프레임워크(예: Backbone.js, Angular.js) 함께 사용

Presentational 컴포넌트와 Container 컴포넌트의 차이점은 무엇인가요?

Presentational 컴포넌트는 컴포넌트의 모양에 관심이 있습니다. 디스플레이는 구체적으로 props를 통해 데이터와 콜백을 허용하고 자체 상태를 거의 갖지 않지만 디스플레이 구성 요소에 자체 상태가 있는 경우 일반적으로 데이터 상태보다는 UI 상태에만 관심을 갖습니다.

컨테이너 구성 요소는 구성 요소가 작동하는 방식에 더 관심이 있습니다. 컨테이너 구성 요소는 프레젠테이션 구성 요소 또는 Flux actions를 호출하고 이를 프레젠테이션 구성 요소에 대한 콜백으로 제공하는 기타 컨테이너 구성 요소에 데이터와 동작을 제공합니다. 컨테이너 구성 요소는 다른 구성 요소의 데이터 소스이기 때문에 상태를 유지하는 경우가 많습니다.

클래스 구성 요소와 기능 구성 요소의 차이점은 무엇인가요?

클래스 구성 요소를 사용하면 구성 요소 자체의 상태 및 수명 주기 후크와 같은 추가 기능을 사용할 수 있을 뿐만 아니라 구성 요소가 스토어에 직접 액세스할 수 있습니다. 그리고 상태 유지

컴포넌트가 props만 받고 컴포넌트 자체를 페이지에 렌더링하는 경우 해당 컴포넌트는 '상태 비저장 컴포넌트'이며 순수 함수를 사용하여 이러한 컴포넌트를 만들 수 있습니다. 이런 종류의 컴포넌트를 덤(Dumb) 컴포넌트 또는 디스플레이 컴포넌트라고도 합니다. 상태와 소품의 차이점은 무엇입니까? 상태는 컴포넌트를 로드할 때 필요한 데이터에 대한 기본값입니다. 상태는 시간이 지남에 따라 변경될 수 있지만 대부분 사용자 이벤트 동작의 결과입니다.

Props(프로퍼티의 약어)는 컴포넌트의 구성입니다. Prop은 상위 구성 요소에서 하위 구성 요소로 전달되며 하위 구성 요소에 관한 한 Prop은 변경할 수 없습니다. 컴포넌트는 자신의 props를 변경할 수 없지만 하위 컴포넌트의 props를 하나로 묶을 수 있습니다(통합 관리). Prop은 단순한 데이터가 아닙니다. 콜백 함수도 Prop을 통해 전달될 수 있습니다.

(컴포넌트) 라이프 사이클 방법의 차이점을 지적하세요.

comComponentWillMount - 주로 루트 컴포넌트의 애플리케이션 구성에 사용됩니다.

comComponentDidMount - 여기에서 DOM 없이는 수행할 수 없는 모든 구성을 완료하고 모든 구성을 시작할 수 있습니다. 필수 데이터, 이벤트 수신을 설정해야 하는 경우 여기에서 완료할 수도 있습니다

comComponentWillReceiveProps - 이 주기적 함수는 특정 prop 변경으로 인한 상태 전환에 작용합니다

shouldComponentUpdate - 과도한 렌더링이 걱정되는 경우 구성 요소 shouldComponentUpdate는 성능을 향상시키는 방법입니다. 왜냐하면 구성 요소가 새 prop을 받으면 다시 렌더링되는 것을 방지할 수 있기 때문입니다. shouldComponentUpdate는 구성 요소를 다시 렌더링해야 하는지 여부를 결정하기 위해 부울 값을 반환해야 합니다.

comComponentWillUpdate - 거의 사용되지 않습니다. 구성 요소의 componentWillReceiveProps 및 shouldComponentUpdate를 대체하는 데 사용할 수 있습니다(그러나 이전 prop에는 액세스할 수 없음)

comComponentDidUpdate - 종종 DOM을 업데이트하고 prop 또는 상태 변경에 응답하는 데 사용됩니다

comComponentWillUnmount - 여기에서 네트워크 요청을 취소할 수 있습니다. 또는 모든 구성요소 관련 이벤트 리스너

를 제거하세요.

React 구성 요소에서 Ajax 요청이 시작되어야 하는 위치

React 구성 요소에서 네트워크 요청은 componentDidMount에서 시작되어야 합니다. 이 메서드는 구성 요소가 처음으로 "마운트"(DOM에 추가)될 때 실행되며 구성 요소의 수명 주기에서 한 번만 실행됩니다. 더 중요한 것은 구성요소가 마운트되기 전에는 보장할 수 없다는 것입니다. Ajax 요청이 완료되었다면 마운트 해제된 구성요소에서 setState를 호출하려고 시도 중이라는 뜻이며 이는 작동하지 않습니다. componentDidMount에서 네트워크 요청을 하면 업데이트할 구성 요소가 있는지 확인됩니다.

제어 구성 요소란 무엇입니까

HTML에서 ,

React에서 ref의 역할은 무엇인가요

Refs는 DOM 노드 또는 React 구성 요소에 대한 참조를 얻는 데 사용할 수 있습니다. 참조를 사용하는 좋은 예는 포커스/텍스트 선택을 관리하거나, 명령 애니메이션을 트리거하거나, 타사 DOM 라이브러리와 통합하는 것입니다. 문자열 참조 및 인라인 참조 콜백을 사용하지 않아야 합니다. Refs 콜백은 React에서 권장됩니다.

고차 컴포넌트란 무엇인가요?

고차 컴포넌트는 컴포넌트를 매개변수로 사용하고 새 컴포넌트를 반환하는 함수입니다. HOC를 사용하면 코드, 논리 및 부트스트래핑 추상화를 재사용할 수 있습니다. 가장 일반적인 것은 아마도 Redux의 연결 기능일 것입니다. 단순히 도구 라이브러리와 간단한 구성을 공유하는 것 외에도 HOC를 위한 가장 좋은 방법은 React 구성 요소 간의 동작을 공유하는 것입니다. 동일한 작업을 수행하기 위해 여러 위치에 많은 코드를 작성했다면 해당 코드를 재사용 가능한 HOC로 리팩토링하는 것을 고려해야 합니다.

Exercise

입력을 반전시키는 HOC 작성

API에서 수신 구성 요소로 데이터를 제공하는 HOC 작성

# 🎜🎜#조정을 피하기 위해 shouldComponentUpdate를 구현하는 HOC 작성

React.Children.toArray를 통해 들어오는 구성 요소의 하위 구성 요소를 정렬하는 HOC 작성

화살표 사용이란 무엇입니까? 함수의 장점(화살표 함수)

범위 안전성: 화살표 함수 이전에 새로 생성된 각 함수는 엄격 모드에서 고유한 this 값(생성자의 새 값) 개체를 갖습니다. 함수 호출에서는 정의되지 않습니다. 함수가 "객체 메서드", 기본 객체 등으로 호출되는 경우), 둘러싸는 실행 컨텍스트의 this 값을 사용하는 화살표 함수는 그렇지 않습니다.

Simple: 화살표 함수는 읽고 쓰기 쉽습니다

Clear: 모든 것이 화살표 함수인 경우 모든 일반 함수를 즉시 사용하여 범위를 정의할 수 있습니다. 개발자는 항상 다음 상위 함수 명령문을 찾아 this

의 값을 확인할 수 있습니다.

setState에 전달된 매개변수가 객체 대신 콜백인 것이 권장되는 이유

this.props와 this.state의 업데이트는 비동기적일 수 있고 해당 값을 사용하여 다음 상태를 계산할 수 없기 때문입니다.

생성자에서 this를 바인딩하는 것 외에 다른 방법이 있나요? this,还有其它方式吗

你可以使用属性初始值设定项(property initializers)来正确绑定回调,create-react-app 也是默认支持的。在回调中你可以使用箭头函数,但问题是每次组件渲染时都会创建一个新的回调。

怎么阻止组件的渲染

在组件的 render 方法中返回 null 并不会影响触发组件的生命周期方法

当渲染一个列表时,何为 key?设置 key 的目的是什么

Keys 会有助于 React 识别哪些 items 改变了,被添加了或者被移除了。Keys 应该被赋予数组内的元素以赋予(DOM)元素一个稳定的标识,选择一个 key 的最佳方法是使用一个字符串,该字符串能惟一地标识一个列表项。很多时候你会使用数据中的 IDs 作为 keys,当你没有稳定的 IDs 用于被渲染的 items 时,可以使用项目索引作为渲染项的 key,但这种方式并不推荐,如果 items 可以重新排序,就会导致 re-render 变慢。

(在构造函数中)调用 super(props) 的目的是什么

在 super() 被调用之前,子类是不能使用 this 的,在 ES2015 中,子类必须在 constructor 中调用 super()。传递 props 给 super() 的原因则是便于(在子类中)能在 constructor 访问 this.props。

何为 JSX

JSX 是 JavaScript 语法的一种语法扩展,并拥有 JavaScript 的全部功能。JSX 生产 React "元素",你可以将任何的 JavaScript 表达式封装在花括号里,然后将其嵌入到 JSX 中。在编译完成之后,JSX 表达式就变成了常规的 JavaScript 对象,这意味着你可以在 if 语句和 for 循环内部使用 JSX,将它赋值给变量,接受它作为参数,并从函数中返回它。

怎么用 React.createElement 重写下面的代码

Question:

const element = (
  <h1>
    Hello, rdhub.cn!
  </h1>
);

Answer:

const element = React.createElement(
  'h1',
  {className: 'greeting'},
  'Hello, rdhub.cn!'
);

何为 Children

create-react-app과 마찬가지로 속성 초기화를 사용하여 콜백을 올바르게 바인딩할 수 있습니다. 기본적으로 지원됩니다. 콜백에서는 화살표 함수를 사용할 수 있지만 문제는 구성 요소가 렌더링될 때마다 새 콜백이 생성된다는 것입니다.

컴포넌트 렌더링을 방지하는 방법

컴포넌트의 렌더링 메서드에서 null을 반환해도 해당 컴포넌트를 트리거하는 수명 주기 메서드에 영향을 주지 않습니다.

목록을 렌더링할 때 핵심은 무엇인가요? 키 설정의 목적은 무엇입니까

키는 React가 어떤 항목이 변경, 추가 또는 제거되었는지 식별하는 데 도움이 됩니다. 열쇠 (DOM) 요소에 안정적인 ID를 제공하려면 배열 내의 요소를 할당해야 합니다. 키를 선택하세요. 가장 좋은 방법은 목록 항목을 고유하게 식별하는 문자열을 사용하는 것입니다. 안정적인 ID가 없을 때 데이터의 ID를 키로 사용하는 경우가 많습니다. 렌더링된 항목과 함께 사용할 경우 항목 인덱스를 항목을 렌더링하는 키로 사용할 수 있지만 항목을 다시 정렬할 수 있으면 다시 렌더링 속도가 느려지므로 권장되지 않습니다.

(생성자에서) super(props)를 호출하는 목적은 무엇인가요?

super()가 호출되기 전에는 하위 클래스가 이를 사용할 수 없습니다. ES2015에서는 하위 클래스가 생성자에서 super()를 호출해야 합니다. props를 super()에 전달하는 이유는 (서브클래스에서) 생성자의 this.props에 더 쉽게 액세스할 수 있도록 하기 위한 것입니다.

JSX란 무엇입니까

JSX는 JavaScript 구문의 구문 확장이며 JavaScript의 모든 기능을 가지고 있습니다. JSX 생산 반응 "요소"를 사용하면 JavaScript 표현식을 중괄호로 묶어 JSX에 포함할 수 있습니다. 컴파일이 완료되면 JSX 표현식은 일반 표현식이 됩니다. JavaScript 객체는 if 문과 for 루프 내에서 JSX를 사용하고, 이를 변수에 할당하고, 인수로 받아들이고, 함수에서 반환할 수 있음을 의미합니다.

React.createElement를 사용하여 다음 코드를 다시 작성하는 방법

질문:

rrreee

답변:

rrreee

Children이 무엇인가요?

JSX 표현식에서 시작 태그(예: ) 사이의 내용은 특수 속성 props.children으로 포함 구성 요소에 자동으로 전달됩니다.

이 속성에는 React.Children.map, React.Children.forEach, React.Children.count, React.Children.only, React.Children.toArray를 포함하여 다양한 메서드를 사용할 수 있습니다.

React의 상태란 무엇입니까

State는 props와 유사하지만 비공개이며 구성 요소 자체에 의해 완전히 제어됩니다. 상태는 기본적으로 데이터를 보유하고 구성 요소가 렌더링되는 방식을 결정하는 개체입니다.

create-react-app

webpack 또는 babel 사전 설정을 구성하려는 경우 종속성을 벗어나도록 유도하는 이유는 무엇입니까?

redux란 무엇입니까

Redux의 기본 아이디어는 전체 애플리케이션 상태를 단일 저장소에 유지하는 것입니다. 저장소는 간단한 자바스크립트입니다 그리고 애플리케이션 상태를 변경하는 유일한 방법은 애플리케이션에서 작업을 트리거한 다음 이러한 작업이 수정되도록 리듀서를 작성하는 것입니다. 상태. 전체 상태 변환은 리듀서에서 수행되며 부작용이 없어야 합니다.

Redux에서 store란 무엇인가요

Store는 전체 애플리케이션의 상태를 저장하는 자바스크립트 객체입니다. 동시에 Store는 다음 책임도 맡습니다.

getState()를 통해 상태에 대한 액세스 허용 🎜🎜 디스패치(action)를 통해 상태 변경 실행 🎜🎜 subscribe(listener)를 통해 리스너 등록 🎜🎜 반환된 함수를 통해 리스너 처리 by subscribe(listener) 로그아웃 🎜🎜액션이란 무엇입니까🎜🎜액션은 순수 자바스크립트 객체이며 실행 중인 액션 유형을 나타내는 유형 속성이 있어야 합니다. 기본적으로 작업은 애플리케이션에서 저장소로 데이터를 보내는 페이로드입니다. 🎜🎜리듀서란 무엇인가요🎜🎜리듀서는 이전 상태와 액션을 매개변수로 받아 다음 상태를 반환하는 순수 함수입니다. 🎜🎜Redux Thunk의 기능은 무엇인가요? 🎜🎜Redux 썽크는 액션 대신 함수를 반환하는 액션 생성자를 작성할 수 있는 미들웨어입니다. 특정 조건이 충족되면 썽크를 사용하여 작업 디스패치(dispatch)를 지연할 수 있으며, 이는 비동기 작업 디스패치(dispatch)를 처리할 수 있습니다. 🎜🎜순수 함수란 무엇인가요?🎜🎜순수 함수는 해당 범위 밖의 변수에 의존하지 않고 상태를 변경하지 않는 함수입니다. 이는 또한 순수 함수가 동일한 매개변수에 대해 항상 동일한 값을 반환한다는 의미이기도 합니다. 결과. 🎜🎜🎜

위 내용은 (컬렉션) React에서 흔히 볼 수 있는 면접 질문 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 segmentfault思否에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
JavaScript의 기원 : 구현 언어 탐색JavaScript의 기원 : 구현 언어 탐색Apr 29, 2025 am 12:51 AM

JavaScript는 1995 년에 시작하여 Brandon Ike에 의해 만들어졌으며 언어를 C로 실현했습니다. 1.C Language는 JavaScript의 고성능 및 시스템 수준 프로그래밍 기능을 제공합니다. 2. JavaScript의 메모리 관리 및 성능 최적화는 C 언어에 의존합니다. 3. C 언어의 크로스 플랫폼 기능은 자바 스크립트가 다른 운영 체제에서 효율적으로 실행하는 데 도움이됩니다.

무대 뒤에서 : 어떤 언어의 힘이 자바 스크립트입니까?무대 뒤에서 : 어떤 언어의 힘이 자바 스크립트입니까?Apr 28, 2025 am 12:01 AM

JavaScript는 브라우저 및 Node.js 환경에서 실행되며 JavaScript 엔진을 사용하여 코드를 구문 분석하고 실행합니다. 1) 구문 분석 단계에서 초록 구문 트리 (AST)를 생성합니다. 2) 컴파일 단계에서 AST를 바이트 코드 또는 기계 코드로 변환합니다. 3) 실행 단계에서 컴파일 된 코드를 실행하십시오.

파이썬과 자바 스크립트의 미래 : 트렌드와 예측파이썬과 자바 스크립트의 미래 : 트렌드와 예측Apr 27, 2025 am 12:21 AM

Python 및 JavaScript의 미래 추세에는 다음이 포함됩니다. 1. Python은 과학 컴퓨팅 분야에서의 위치를 ​​통합하고 AI, 2. JavaScript는 웹 기술의 개발을 촉진하고, 3. 교차 플랫폼 개발이 핫한 주제가되고 4. 성능 최적화가 중점을 둘 것입니다. 둘 다 해당 분야에서 응용 프로그램 시나리오를 계속 확장하고 성능이 더 많은 혁신을 일으킬 것입니다.

Python vs. JavaScript : 개발 환경 및 도구Python vs. JavaScript : 개발 환경 및 도구Apr 26, 2025 am 12:09 AM

개발 환경에서 Python과 JavaScript의 선택이 모두 중요합니다. 1) Python의 개발 환경에는 Pycharm, Jupyternotebook 및 Anaconda가 포함되어 있으며 데이터 과학 및 빠른 프로토 타이핑에 적합합니다. 2) JavaScript의 개발 환경에는 Node.js, VScode 및 Webpack이 포함되어 있으며 프론트 엔드 및 백엔드 개발에 적합합니다. 프로젝트 요구에 따라 올바른 도구를 선택하면 개발 효율성과 프로젝트 성공률이 향상 될 수 있습니다.

JavaScript가 C로 작성 되었습니까? 증거를 검토합니다JavaScript가 C로 작성 되었습니까? 증거를 검토합니다Apr 25, 2025 am 12:15 AM

예, JavaScript의 엔진 코어는 C로 작성되었습니다. 1) C 언어는 효율적인 성능과 기본 제어를 제공하며, 이는 JavaScript 엔진 개발에 적합합니다. 2) V8 엔진을 예를 들어, 핵심은 C로 작성되며 C의 효율성 및 객체 지향적 특성을 결합하여 C로 작성됩니다.

JavaScript의 역할 : 웹 대화식 및 역동적 인 웹JavaScript의 역할 : 웹 대화식 및 역동적 인 웹Apr 24, 2025 am 12:12 AM

JavaScript는 웹 페이지의 상호 작용과 역학을 향상시키기 때문에 현대 웹 사이트의 핵심입니다. 1) 페이지를 새로 고치지 않고 콘텐츠를 변경할 수 있습니다. 2) Domapi를 통해 웹 페이지 조작, 3) 애니메이션 및 드래그 앤 드롭과 같은 복잡한 대화식 효과를 지원합니다. 4) 성능 및 모범 사례를 최적화하여 사용자 경험을 향상시킵니다.

C 및 JavaScript : 연결이 설명되었습니다C 및 JavaScript : 연결이 설명되었습니다Apr 23, 2025 am 12:07 AM

C 및 JavaScript는 WebAssembly를 통한 상호 운용성을 달성합니다. 1) C 코드는 WebAssembly 모듈로 컴파일되어 컴퓨팅 전력을 향상시키기 위해 JavaScript 환경에 도입됩니다. 2) 게임 개발에서 C는 물리 엔진 및 그래픽 렌더링을 처리하며 JavaScript는 게임 로직 및 사용자 인터페이스를 담당합니다.

웹 사이트에서 앱으로 : 다양한 JavaScript 애플리케이션웹 사이트에서 앱으로 : 다양한 JavaScript 애플리케이션Apr 22, 2025 am 12:02 AM

JavaScript는 웹 사이트, 모바일 응용 프로그램, 데스크탑 응용 프로그램 및 서버 측 프로그래밍에서 널리 사용됩니다. 1) 웹 사이트 개발에서 JavaScript는 HTML 및 CSS와 함께 DOM을 운영하여 동적 효과를 달성하고 jQuery 및 React와 같은 프레임 워크를 지원합니다. 2) 반응 및 이온 성을 통해 JavaScript는 크로스 플랫폼 모바일 애플리케이션을 개발하는 데 사용됩니다. 3) 전자 프레임 워크를 사용하면 JavaScript가 데스크탑 애플리케이션을 구축 할 수 있습니다. 4) node.js는 JavaScript가 서버 측에서 실행되도록하고 동시 요청이 높은 높은 요청을 지원합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경