React에서 컴포넌트는 중국어로 "컴포넌트"를 의미합니다. 이는 독립적인 기능을 가진 캡슐화된 UI 컴포넌트로, 표시할 콘텐츠가 여러 개의 독립적인 부분으로 나누어져 있으며, 각 부분이 컴포넌트입니다. 구성 요소에는 두 가지 중요한 사항이 있습니다. 하나는 속성이고 다른 하나는 상태입니다. 구성 요소의 속성은 상위 구성 요소에 의해 제공되며 하위 구성 요소에 대한 상위 구성 요소의 요구 사항을 저장합니다. 속성은 구성 요소 내에서 액세스할 수 있지만 구성 요소의 상태를 정의하고 사용할 수는 없습니다. 구성 요소 자체에 의해 구성 요소의 현재 상태가 수정될 수 있습니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, React18 버전, Dell G3 컴퓨터.
React에서 컴포넌트는 독립적인 기능을 가진 캡슐화된 UI 컴포넌트인 UI 단위입니다. 아이디어는 표시할 콘텐츠를 여러 개의 독립적인 부분으로 나누는 것입니다. 이러한 각 부분은 Android 또는 iOS의 컨트롤과 약간 유사한 구성 요소입니다.
구성요소는 페이지의 일부입니다. 크고 작은 다양한 구성요소가 모여서 완전한 페이지를 형성합니다. 우리가 플레이하는 퍼즐처럼 조각조각 맞춰져야 완전한 퍼즐이 됩니다.
1. 컴포넌트의 기본 컴포넌트
각 컴포넌트는 실제로 코드에서 추출된 클래스로, 가장 간단한 컴포넌트입니다.
class Greeting extends React.Component { render() { return <h1 id="Hello-nbsp-this-props-name">Hello, {this.props.name}</h1>; } }
위 코드에서 볼 수 있듯이 컴포넌트와 일반 클래스도 가능합니다. 방법을 정의합니다. 구성 요소의 경우 render() 메서드는 매우 중요하며(구현해야 함) 구성 요소의 인터페이스가 반환되는 것은 이 메서드입니다. render() 메서드에서 JSX는 구성 요소의 인터페이스를 정의하는 데 사용됩니다. render() 메서드에 대해서는 나중에 자세히 설명합니다.
또한, 컴포넌트에는 두 가지 중요한 것이 있는데, 하나는 속성(props)이고 다른 하나는 상태(state)입니다. 간단히 말해서, 구성 요소의 속성은 상위 구성 요소에 의해 제공됩니다(구성 요소는 중첩될 수 있음). 저장되는 것은 하위 구성 요소에 대한 상위 구성 요소의 요구 사항입니다. 속성은 구성 요소 내에서 액세스(사용)될 수 있습니다. ;구성 요소의 상태는 구성 요소 자체에 의해 정의되고 사용됩니다. 구성 요소의 현재 상태를 저장하는 데 사용됩니다.
2. 컴포넌트 수명 주기
컴포넌트의 수명 주기는 크게 표시(마운트), 새로 고침(업데이트), 사라짐(마운트 해제)의 세 단계로 나눌 수 있습니다.
각 단계에서는 여러 단계가 세분화됩니다.
1. 표시 단계(마운팅)
은 구성 요소가 생성되어 뷰에 삽입되는 단계입니다.
- constructor(props)
구성 요소는 다음과 같이 실행됩니다. 메서드 내에서 상위 구성 요소가 전달한 속성 개체 소품에 액세스할 수 있습니다. 이 메서드를 재정의하려면 super(props)를 먼저 작성해야 합니다. 그렇지 않으면 이 구성 요소 내에서 속성에 액세스할 수 없습니다(속성 내용은 나중에 자세히 설명합니다).
- comComponentWillMount()
- render()
- comComponentDidMount()
2. 새로 고침 단계(업데이트 중)
구성 요소는 해당 속성(props) 및 상태(state)가 변경될 때 트리거됩니다. 새로고침하면 다음 메소드가 한번에 실행됩니다:
- comComponentWillReceiveProps(nextProps)
컴포넌트의 속성이 변경되면 호출됩니다. 이 메소드에서는 nextProps가 새로운 속성입니다. 이 메서드 내에서 상태를 업데이트하려면 먼저 상태를 새로 고치기 전에 속성의 현재 값과 새 값이 다른지 확인해야 합니다.
- shouldComponentUpdate()
이 메서드는 구성 요소의 render() 메서드가 호출되는지 여부를 결정하기 위해 true 또는 false를 반환합니다.
- comComponentWillUpdate()
- render()
- comComponentDidUpdate()
3. 소멸 단계(Unmounting)
컴포넌트가 제거된 후 소멸 단계에 진입하여 다음 메소드를 실행합니다.
- componentWillUnmount()
3. 구성 요소 속성, 상태 및 메서드
구성 요소 내부에서 자체 속성, 상태 및 메서드에 액세스하려면 일반적으로 이 키워드를 사용하여 이 구성 요소의 의미를 표현해야 합니다. .
1. 구성 요소 메서드
구성 요소 메서드에 액세스하는 형식: this.methodName(param1, param2,...)
this.methodName(param1,param2,…)
如,在组件内部定义了方法:
_method() { console.log(‘method call ! ~~~~’); }
要调用它: this._method();
예를 들어, 메서드는 구성 요소 내부에 정의됩니다. :
{ property1:value1, property2:value2, … }
호출하려면: this._method();
上面提到,组件的属性,是由父组件给的,从意义上理解,组件的属性用来存储父组件对子组件的要求。
访问组件的属性格式: this.props.propertyName
这里看到,与访问组件的方法不同,这里没有直接在this后就直接跟属性名,中间多了一个props。这个props其实是一个属性对象,上面我们提到属性是父组件给的,那么这个props对象就相当于把父组件给的所有的属性都封装起来,一个props对象像这样:
{ property1:value1, property2:value2, … }
注意,在使用react的时候会经常遇到用这种形式表示的对象,也就是一个花括号内包含若干对属性名和属性值。
访问组件的属性的例子:
例如组件有一个属性height,那么要访问它: this.props.height;
虽然属性不能修改,但我们能给组件属性一个默认值,也就是说,当父组件没有给该属性赋值的时候,使用的一个默认值。
例如给组件CustomButton定义默认属性:
CustomButton.defaultProps = { color: 'blue' };
另外还可以给组件的属性指定类型,在开发模式下这个如果父组件设置的属性不符合子组件设定的类型的话,会输出警告,在生产模式下就不会对类型进行检查,例如,设定CustomButton组件的color属性的类型为字符:
CustomButton.propTypes = { color: React.PropTypes.string };
3. 组件的状态
组件的状态,就是用来存储组件的当前状态。
访问状态的格式: this.state.propertyName
例如,组件有个属性height,那么要访问它对应的状态: this.state.height;
与组件的属性类似,这里也没有直接在this后跟属性名,中间多了个state。类似的,state也是一个状态对象,把所有属性对应的状态封装起来。既然是对象,当然也可以使用上面说的“花括号内包含若干对属性名和属性值”的形式来表示,像这样:
{ property1:value1, property2:value2, … }
上面提到,属性是父组件给的,不可修改,但状态可以修改。由于状态是一个对象,因此修改状态,就是给this.state赋予一个新的对象:
this.state = { propertyName1:newValue1, propertyName2:newValue2, … };
或者使用setState()方法,这个方法会将新的、旧的状态合并,因此只需要填入有变化的状态就好,
this.setState({ propertyName1:newValue1, propertyName2:newValue2, … });
例如,修改一个组件的两个状态height和width分别为100和200:
this.state = { height:100,width:200, };
或
this.setState({ height:100, width:200, });
四、组件的render()方法
上面提到,render()方法是专门用来返回组件界面的。从组件的生命周期可以看出,在组件第一次加载的时候,或者组件的props或state有变化的时候,render()方法都会被调用,也就是说这两种情况下,组件会重画它的界面,因此在render()方法中尽量只做有关界面的事情。
组件的界面也是由一个或多个其他的组件组成的,比如View、Button、Text等等。需要注意的是,如果当多个子组件都需要使用同一个状态(状态可能会改变)的时候,为了减少对状态(属性)的访问次数,建议在render()方法中,先用一个变量存储该状态的当前值,然后在各个组件中使用这个变量,而不是在各个组件中多次访问这个状态。
例如,这里组件Text、Input、Image都是用到了this.state.value,推荐的写法是:
render() { const value = this.state.value; return ( <View> <Text>{value}</Text> <Input value={value} onChange={this.handleChange} /> <Image source = {{ uri : value }}/> </View> ); }
在上面的例子当中,return()方法内部是由的是JSX,ReactNative支持的表示界面的一种语法,类似于XML或者HTML。这个可以去查查看。
这个例子里,组件使用的都是this.state.value。这里可能就存在疑惑,在组件中什么时候应该用props,什么时候应该用state。下面看,属性和状态的使用场景。
五、属性和状态的使用场景
在组件中应该用props还是state,取决于这个信息是来自于组件内部还是来自于组件外部。什么意思呢?
例如,自定义一个组件CustomView(如下图)。CustomView包括一个输入框组件Input和一个文本框组件CustomText。现在要求CustomText显示的文本随Input中输入的内容变化(输入什么就显示什么)。
对于组件CustomView,其子组件CustomText的要显示的文本来自于子组件Input,都是在CustomView的内部,因此CustomView可以用this.state.value来存储输入框的内容,然后CustomText就显示this.state.value。
那么站在组件CustomText的角度,假定CustomText内部包含一个Text组件,实际上文本是由Text组件显示的(如下图):
为了满足组件CustomText的文本随输入框的内容改变,就要求CustomView要将输入框的内容传到CustomText内部,这样CustomText的子组件Text才可以访问到。这就需要用到属性。如果CustomView通过属性textFromInput传给CustomText的话,在CustomText内部,就可以通过this.props.textFromInput访问到。
所以CustomView的render()方法应该是这样的:
render(){ var value = this.state.value; return( <CustomText textFromInput = {value}/> <Input onChange = {this._inputValueChange}/> ); }
CustomText的render()方法应该是这样的:
render(){ return( <Text>{this.props.textFromInput}</Text> ); }
这时候,只要实现每次输入内容变化的时候更新状态value,就可以实现CustomText的内随输入内容变化。上面onChange指向_inputValueChange方法,于是实现该方法:
this._inputValueChange(e){ this.setState({ value:e.target.value; }); }
위 내용은 반응의 구성 요소는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

반응을 HTML에 통합하려면 다음 단계를 따르십시오. 1. HTML 파일에 React 및 Reactdom을 소개하십시오. 2. 반응 구성 요소를 정의합니다. 3. 반응을 사용하여 구성 요소를 HTML 요소로 렌더링합니다. 이러한 단계를 통해 정적 HTML 페이지를 역동적이고 대화식 경험으로 변환 할 수 있습니다.

React의 인기에는 성능 최적화, 구성 요소 재사용 및 풍부한 생태계가 포함됩니다. 1. 성능 최적화는 가상 DOM 및 Diffing 메커니즘을 통해 효율적인 업데이트를 달성합니다. 2. 구성 요소 재사용은 재사용 가능한 구성 요소에 의해 중복 코드를 줄입니다. 3. 풍부한 생태계와 일원 데이터 흐름은 개발 경험을 향상시킵니다.

React는 동적 및 대화식 사용자 인터페이스를 구축하기위한 선택 도구입니다. 1) 구성 요소화 및 JSX는 UI 분할 및 재사용을 간단하게 만듭니다. 2) State Management는 Usestate 후크를 통해 구현되어 UI 업데이트를 트리거합니다. 3) 이벤트 처리 메커니즘은 사용자 상호 작용에 응답하고 사용자 경험을 향상시킵니다.

React는 사용자 인터페이스를 구축하기위한 프론트 엔드 프레임 워크입니다. 백엔드 프레임 워크는 서버 측 응용 프로그램을 구축하는 데 사용됩니다. React는 구성 및 효율적인 UI 업데이트를 제공하며 백엔드 프레임 워크는 완전한 백엔드 서비스 솔루션을 제공합니다. 기술 스택, 프로젝트 요구 사항, 팀 기술 및 확장 성을 선택할 때는 고려해야합니다.

HTML과 React의 관계는 프론트 엔드 개발의 핵심이며, 현대 웹 애플리케이션의 사용자 인터페이스를 공동으로 구축합니다. 1) HTML은 컨텐츠 구조와 의미를 정의하고 React는 구성 요소화를 통해 동적 인터페이스를 구축합니다. 2) 부품은 JSX 구문을 사용하여 HTML을 포함하여 지능형 렌더링을 달성합니다. 3) 구성 요소 수명주기는 상태 및 속성에 따라 HTML 렌더링 및 업데이트를 동적으로 관리합니다. 4) 구성 요소를 사용하여 HTML 구조를 최적화하고 유지 관리 가능성을 향상시킵니다. 5) 성능 최적화에는 불필요한 렌더링을 피하고 주요 속성 사용 및 구성 요소 단일 책임을 유지하는 것이 포함됩니다.

React는 대화식 프론트 엔드 경험을 구축하는 데 선호되는 도구입니다. 1) 반응은 구성 요소화 및 가상 DOM을 통해 UI 개발을 단순화합니다. 2) 구성 요소는 기능 구성 요소 및 클래스 구성 요소로 나뉩니다. 기능 구성 요소는 더 간단하고 클래스 구성 요소는 더 많은 수명주기 방법을 제공합니다. 3) RECT의 작동 원리는 가상 DOM 및 조정 알고리즘에 의존하여 성능을 향상시킵니다. 4) 주 경영진은 usestate 또는 this.state를 사용하며 ComponentDidMount와 같은 수명주기 방법은 특정 논리에 사용됩니다. 5) 기본 사용에는 구성 요소 생성 및 상태 관리가 포함되며 고급 사용량은 사용자 정의 후크 및 성능 최적화가 포함됩니다. 6) 일반적인 오류에는 부적절한 상태 업데이트 및 성능 문제, 디버깅 기술은 ReactDevTools 사용 및 우수

React는 핵심 구성 요소 및 상태 관리 기능을 갖춘 사용자 인터페이스를 구축하기위한 JavaScript 라이브러리입니다. 1) 구성 요소화 및 상태 관리를 통해 UI 개발을 단순화합니다. 2) 작업 원칙에는 화해 및 렌더링이 포함되며 최적화는 React.Memo 및 Usememo를 통해 구현할 수 있습니다. 3) 기본 사용법은 구성 요소를 작성하고 렌더링하는 것입니다. 고급 사용법에는 후크 및 컨텍스트를 사용하는 것이 포함됩니다. 4) 부적절한 상태 업데이트와 같은 일반적인 오류는 ReactDevTools를 사용하여 디버그 할 수 있습니다. 5) 성능 최적화에는 React.Memo, 가상화 목록 및 코드플릿을 사용하는 것이 포함되며 코드를 읽을 수 있고 유지 관리 가능하게 유지하는 것이 가장 좋습니다.

React는 JSX와 HTML을 결합하여 사용자 경험을 향상시킵니다. 1) JSX는 개발을보다 직관적으로 만들기 위해 HTML을 포함시킨다. 2) 가상 DOM 메커니즘은 성능을 최적화하고 DOM 운영을 줄입니다. 3) 유지 보수성을 향상시키기위한 구성 요소 기반 관리 UI. 4) 상태 관리 및 이벤트 처리는 상호 작용을 향상시킵니다.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구
