이 기사는 React에서 자주 묻는 질문을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
다음은 React에 대해 일반적으로 사용되는 면접 질문 목록입니다.
면접관이든 채용 담당자이든 다음 질문을 참고할 수 있습니다.
북마크에 추가하세요
React는 가상 DOM(가상 DOM)을 만듭니다. 구성 요소의 상태가 변경되면 React는 먼저 "diffing" 알고리즘을 통해 가상 DOM의 변경 사항을 표시하고 두 번째 단계는 조정이며 DOM은 diff 결과로 업데이트됩니다.
렌더링 기능만 봐도 컴포넌트가 어떻게 렌더링되는지 쉽게 알 수 있습니다
JSX의 도입으로 컴포넌트의 코드를 더 읽기 쉽고 레이아웃을 더 쉽게 이해할 수 있습니다. 또는 구성 요소가 서로 참조하는 방식
서버 측 렌더링을 지원하여 SEO와 성능을 향상할 수 있습니다
테스트가 쉽습니다
React는 뷰 레이어에만 초점을 맞추기 때문에 다른 프레임워크(예: Backbone.js, Angular.js) 함께 사용
Presentational 컴포넌트는 컴포넌트의 모양에 관심이 있습니다. 디스플레이는 구체적으로 props를 통해 데이터와 콜백을 허용하고 자체 상태를 거의 갖지 않지만 디스플레이 구성 요소에 자체 상태가 있는 경우 일반적으로 데이터 상태보다는 UI 상태에만 관심을 갖습니다.
컨테이너 구성 요소는 구성 요소가 작동하는 방식에 더 관심이 있습니다. 컨테이너 구성 요소는 프레젠테이션 구성 요소 또는 Flux actions
를 호출하고 이를 프레젠테이션 구성 요소에 대한 콜백으로 제공하는 기타 컨테이너 구성 요소에 데이터와 동작을 제공합니다. 컨테이너 구성 요소는 다른 구성 요소의 데이터 소스이기 때문에 상태를 유지하는 경우가 많습니다.
클래스 구성 요소를 사용하면 구성 요소 자체의 상태 및 수명 주기 후크와 같은 추가 기능을 사용할 수 있을 뿐만 아니라 구성 요소가 스토어에 직접 액세스할 수 있습니다. 그리고 상태 유지
컴포넌트가 props만 받고 컴포넌트 자체를 페이지에 렌더링하는 경우 해당 컴포넌트는 '상태 비저장 컴포넌트'이며 순수 함수를 사용하여 이러한 컴포넌트를 만들 수 있습니다. 이런 종류의 컴포넌트를 덤(Dumb) 컴포넌트 또는 디스플레이 컴포넌트라고도 합니다. 상태와 소품의 차이점은 무엇입니까? 상태는 컴포넌트를 로드할 때 필요한 데이터에 대한 기본값입니다. 상태는 시간이 지남에 따라 변경될 수 있지만 대부분 사용자 이벤트 동작의 결과입니다.
comComponentWillMount - 주로 루트 컴포넌트의 애플리케이션 구성에 사용됩니다.
React 구성 요소에서 네트워크 요청은 componentDidMount에서 시작되어야 합니다. 이 메서드는 구성 요소가 처음으로 "마운트"(DOM에 추가)될 때 실행되며 구성 요소의 수명 주기에서 한 번만 실행됩니다. 더 중요한 것은 구성요소가 마운트되기 전에는 보장할 수 없다는 것입니다. Ajax 요청이 완료되었다면 마운트 해제된 구성요소에서 setState를 호출하려고 시도 중이라는 뜻이며 이는 작동하지 않습니다. componentDidMount에서 네트워크 요청을 하면 업데이트할 구성 요소가 있는지 확인됩니다.
HTML에서 ,
Refs는 DOM 노드 또는 React 구성 요소에 대한 참조를 얻는 데 사용할 수 있습니다. 참조를 사용하는 좋은 예는 포커스/텍스트 선택을 관리하거나, 명령 애니메이션을 트리거하거나, 타사 DOM 라이브러리와 통합하는 것입니다. 문자열 참조 및 인라인 참조 콜백을 사용하지 않아야 합니다. Refs 콜백은 React에서 권장됩니다.
고차 컴포넌트는 컴포넌트를 매개변수로 사용하고 새 컴포넌트를 반환하는 함수입니다. HOC를 사용하면 코드, 논리 및 부트스트래핑 추상화를 재사용할 수 있습니다. 가장 일반적인 것은 아마도 Redux의 연결 기능일 것입니다. 단순히 도구 라이브러리와 간단한 구성을 공유하는 것 외에도 HOC를 위한 가장 좋은 방법은 React 구성 요소 간의 동작을 공유하는 것입니다. 동일한 작업을 수행하기 위해 여러 위치에 많은 코드를 작성했다면 해당 코드를 재사용 가능한 HOC로 리팩토링하는 것을 고려해야 합니다.
Exercise
입력을 반전시키는 HOC 작성
API에서 수신 구성 요소로 데이터를 제공하는 HOC 작성
# 🎜🎜#조정을 피하기 위해 shouldComponentUpdate를 구현하는 HOC 작성React.Children.toArray를 통해 들어오는 구성 요소의 하위 구성 요소를 정렬하는 HOC 작성화살표 사용이란 무엇입니까? 함수의 장점(화살표 함수)this.props와 this.state의 업데이트는 비동기적일 수 있고 해당 값을 사용하여 다음 상태를 계산할 수 없기 때문입니다.
this
를 바인딩하는 것 외에 다른 방법이 있나요? this
,还有其它方式吗你可以使用属性初始值设定项(property initializers)来正确绑定回调,create-react-app 也是默认支持的。在回调中你可以使用箭头函数,但问题是每次组件渲染时都会创建一个新的回调。
在组件的 render 方法中返回 null 并不会影响触发组件的生命周期方法
Keys 会有助于 React 识别哪些 items 改变了,被添加了或者被移除了。Keys 应该被赋予数组内的元素以赋予(DOM)元素一个稳定的标识,选择一个 key 的最佳方法是使用一个字符串,该字符串能惟一地标识一个列表项。很多时候你会使用数据中的 IDs 作为 keys,当你没有稳定的 IDs 用于被渲染的 items 时,可以使用项目索引作为渲染项的 key,但这种方式并不推荐,如果 items 可以重新排序,就会导致 re-render 变慢。
在 super() 被调用之前,子类是不能使用 this 的,在 ES2015 中,子类必须在 constructor 中调用 super()。传递 props 给 super() 的原因则是便于(在子类中)能在 constructor 访问 this.props。
JSX 是 JavaScript 语法的一种语法扩展,并拥有 JavaScript 的全部功能。JSX 生产 React "元素",你可以将任何的 JavaScript 表达式封装在花括号里,然后将其嵌入到 JSX 中。在编译完成之后,JSX 表达式就变成了常规的 JavaScript 对象,这意味着你可以在 if 语句和 for 循环内部使用 JSX,将它赋值给变量,接受它作为参数,并从函数中返回它。
Question:
const element = ( <h1 className="greeting"> Hello, rdhub.cn! </h1> );
Answer:
const element = React.createElement( 'h1', {className: 'greeting'}, 'Hello, rdhub.cn!' );
Children
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-appwebpack 또는 babel 사전 설정을 구성하려는 경우 종속성을 벗어나도록 유도하는 이유는 무엇입니까? redux란 무엇입니까Redux의 기본 아이디어는 전체 애플리케이션 상태를 단일 저장소에 유지하는 것입니다. 저장소는 간단한 자바스크립트입니다
그리고 애플리케이션 상태를 변경하는 유일한 방법은 애플리케이션에서 작업을 트리거한 다음 이러한 작업이 수정되도록 리듀서를 작성하는 것입니다.
상태. 전체 상태 변환은 리듀서에서 수행되며 부작용이 없어야 합니다. Redux에서 store란 무엇인가요Store는 전체 애플리케이션의 상태를 저장하는 자바스크립트 객체입니다. 동시에 Store는 다음 책임도 맡습니다. getState()를 통해 상태에 대한 액세스 허용 🎜🎜 디스패치(action)를 통해 상태 변경 실행 🎜🎜 subscribe(listener)를 통해 리스너 등록 🎜🎜 반환된 함수를 통해 리스너 처리 by subscribe(listener) 로그아웃 🎜🎜액션이란 무엇입니까🎜🎜액션은 순수 자바스크립트 객체이며 실행 중인 액션 유형을 나타내는 유형 속성이 있어야 합니다. 기본적으로 작업은 애플리케이션에서 저장소로 데이터를 보내는 페이로드입니다. 🎜🎜리듀서란 무엇인가요🎜🎜리듀서는 이전 상태와 액션을 매개변수로 받아 다음 상태를 반환하는 순수 함수입니다. 🎜🎜Redux Thunk의 기능은 무엇인가요? 🎜🎜Redux 썽크는 액션 대신 함수를 반환하는 액션 생성자를 작성할 수 있는 미들웨어입니다. 특정 조건이 충족되면 썽크를 사용하여 작업 디스패치(dispatch)를 지연할 수 있으며, 이는 비동기 작업 디스패치(dispatch)를 처리할 수 있습니다. 🎜🎜순수 함수란 무엇인가요?🎜🎜순수 함수는 해당 범위 밖의 변수에 의존하지 않고 상태를 변경하지 않는 함수입니다. 이는 또한 순수 함수가 동일한 매개변수에 대해 항상 동일한 값을 반환한다는 의미이기도 합니다. 결과. 🎜🎜🎜위 내용은 (컬렉션) React에서 흔히 볼 수 있는 면접 질문 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!