>  기사  >  웹 프론트엔드  >  반응 제어 구성 요소와 제어되지 않은 구성 요소의 차이점은 무엇입니까

반응 제어 구성 요소와 제어되지 않은 구성 요소의 차이점은 무엇입니까

WBOY
WBOY원래의
2022-06-27 16:59:585184검색

React에서 제어되는 구성 요소와 제어되지 않는 구성 요소의 차이점: 1. 제어되는 구성 요소는 상태에 따라 달라지지만 제어되지 않는 구성 요소는 상태에 따라 제어되지 않습니다. 2. 제어되는 구성 요소는 "React.Component"를 상속하는 경우에만 상태를 가질 수 있습니다. 3. 제어되는 컴포넌트는 일반적으로 초기값을 동적으로 설정해야 할 때 사용되며, 제어되지 않는 컴포넌트는 동적 초기값 정보가 없는 경우에 일반적으로 사용됩니다.

반응 제어 구성 요소와 제어되지 않은 구성 요소의 차이점은 무엇입니까

이 튜토리얼의 운영 환경: Windows 10 시스템, 반응 버전 17.0.1, Dell G3 컴퓨터.

리액트에서 제어되는 구성요소와 제어되지 않는 구성요소의 차이점

둘의 차이점

1. 제어되는 구성요소

제어되는 구성요소는 상태에 따라 달라집니다

제어되는 구성요소의 수정은 상태 값에 매핑됩니다. 이때 입력 내용을 실시간으로 확인할 수 있습니다

제어 컴포넌트는 React.Component를 상속한 경우에만 상태를 가질 수 있습니다

제어 컴포넌트는 해당 이벤트를 바인딩하기 위해 폼의 onChange 이벤트를 사용해야 합니다

2. 제어되지 않는 구성 요소

제어되지 않는 구성 요소는 상태에 의해 제어되지 않습니다

제어되지 않는 구성 요소에서 데이터를 얻는 것은 DOM을 운영하는 것과 같습니다

제어되지 않는 구성 요소는 타사 구성 요소와 쉽게 결합할 수 있으며, React와 Non-React를 통합하는 것이 더 쉽습니다. 동시 코드

제어된 구성요소 또는 제어되지 않은 구성요소 선택

1. 제어된 구성요소 사용 시나리오: 일반적으로 초기 값을 동적으로 설정해야 하는 상황에서 사용됩니다. 예를 들어 일부 양식 정보를 편집할 때 입력 양식 요소는 처음에 서버에서 반환된 특정 값을 표시한 다음 이를 편집해야 합니다.

2. 제어되지 않는 구성요소 사용 시나리오: 일반적으로 동적 초기값 정보가 없는 경우에 사용됩니다. 예를 들어, 양식에서 정보를 생성할 때 입력 양식 요소 중 어느 것도 초기 값을 갖지 않으며 사용자 입력이 필요합니다.

확장된 지식:

1. 제어되는 구성 요소

HTML에서 양식 요소 태그 d5fd7aea971a85678ba271703566ebfd, 4750256ae76b6b9d804861d8f69e79d3, 221f08282418e2996498697df914ce4e 등의 값 변경은 일반적으로 사용자 입력을 기반으로 합니다. .갱신하다

React에서 변경 가능한 상태는 일반적으로 구성 요소의 상태 속성에 보관되며 setState()를 통해서만 업데이트할 수 있으며 양식을 렌더링하는 React 구성 요소는 후속 사용자 입력 시 해당 양식에서 발생하는 일도 제어합니다. React에 의해 제어되는 입력 양식 요소의 값을 제어되는 구성 요소라고 합니다.

예를 들어 onChange 이벤트를 양식 요소 입력에 바인딩하면 입력 상태가 변경되면 onChange 이벤트가 트리거되어 구성 요소의 상태가 업데이트됩니다.

import React, { Component } from 'react'
export default class MyInput extends Component{
  constructor(props) {
    super(props);
    this.state = {
      value: 0
    }
  }
  handleChange = (event)=>{
    this.setState({
        value: event.target.value
    })
  }
  render(){
    return(
      <div>
          <input
              type="text"
              value={this.state.value}
              onChange={this.handleChange}
           />
      </div>
    )
  }
}

제어 구성 요소의 상태를 업데이트하는 프로세스

1. 양식의 기본값은 초기 상태에서 설정할 수 있습니다

2. 양식의 값이 변경될 때마다 onChange 이벤트 핸들러가 호출됩니다

3. 이벤트 핸들러가 전달됩니다. 이벤트 개체 이벤트는 변경된 상태를 가져오고 구성 요소의 상태를 업데이트합니다

4. setState 메서드를 통해 상태가 업데이트되면 뷰의 다시 렌더링이 트리거되고 업데이트가 완료됩니다. form 컴포넌트

React에서는 데이터가 단일 항목으로 흐릅니다. 예제에서는 양식 데이터가 컴포넌트의 상태에서 나오고 props를 통해 전달되는 것을 볼 수 있습니다. 그런 다음 onChange 이벤트 핸들러를 통해 새 데이터가 상태에 다시 기록되어 양방향 데이터 바인딩이 완료됩니다.

2. 제어되지 않는 구성 요소

제어되지 않는 구성 요소는 DOM 자체에서 처리되는 양식 데이터를 나타냅니다. 즉, setState()에 의해 제어되지 않습니다. 이는 기존 HTML 양식 입력과 유사하며 입력 값은 최신 값을 표시합니다.

제어되지 않는 구성 요소에서는 참조를 사용하여 DOM에서 양식 값을 가져올 수 있습니다.

class NameForm extends React.Component {
  constructor(props) {
    super(props);
    this.handleSubmit = this.handleSubmit.bind(this);
  }
  handleSubmit(event) {
    console.log(&#39;A name was submitted: &#39; + this.input.value);
    event.preventDefault();
  }
  render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <label>
          Name:
          <input type="text" ref={(input) => this.input = input} />
        </label>
        <input type="submit" value="Submit" />
      </form>
    );
  }
}

제어되지 않는 구성 요소는 기본 구현 중에 내부적으로 자체 상태를 유지하므로 사용자가 입력한 모든 값이 요소에 반영될 수 있습니다.

【관련 추천: javascript 비디오 튜토리얼, web front-end

위 내용은 반응 제어 구성 요소와 제어되지 않은 구성 요소의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.