React 에서 구성 요소 간 통신 방식 을 자세히 설명 합 니 다.
5130 단어 React구성 요소커 뮤 니 케 이 션
무엇
우 리 는 구성 요소 간 통신 을 두 단어 로 나 눌 수 있다.
vue
에서 가장 강력 한 기능 중 하나 이 고 같은 구성 요 소 는React
의 핵심 사상 이다.vue
에 비해React
의 구성 요소 가 더욱 유연 하고 다양 하 며 서로 다른 방식 으로 여러 유형의 구성 요소 로 나 눌 수 있다.한편,통신 이란 발송 자가 특정한 매 체 를 통 해 특정한 형식 으로 정 보 를 수신 자 에 게 전달 하여 특정한 목적 을 달성 하 는 것 을 말한다.넓 은 의미 에서 모든 정보의 교통 은 통신 이다.
구성 요소 간 통신 이란 구성 요소 가 특정한 방식 으로 정 보 를 전달 하여 특정한 목적 을 달성 하 는 것 을 말한다.
2.어떻게 통신 합 니까?
구성 요소 전달 방식 은 여러 가지 가 있 습 니 다.전송 자 와 수신 자 에 따라 다음 과 같이 나 눌 수 있 습 니 다.
React
의 데이터 가 단 방향 으로 흐 르 기 때문에 부모 구성 요소 가 하위 구성 요소 에 전달 하 는 것 이 가장 흔 한 방식 입 니 다.부모 구성 요 소 는 하위 구성 요 소 를 호출 할 때 하위 구성 요소 탭 에서 파 라 메 터 를 전달 해 야 합 니 다.하위 구성 요 소 는
props
속성 을 통 해 부모 구성 요소 가 전달 하 는 파 라 메 터 를 받 을 수 있 습 니 다.
function EmailInput(props) {
return (
<label>
Email: <input value={props.email} />
</label>
);
}
const element = <EmailInput email="[email protected]" />;
하위 구성 요소 가 부모 구성 요소 에 전달하위 구성 요소 가 부모 구성 요소 에 통신 하 는 기본 적 인 사 고 는 부모 구성 요소 가 하위 구성 요소 에 함 수 를 전달 한 다음 에 이 함수 의 반전 을 통 해 하위 구성 요소 가 전달 하 는 값 을 가 져 오 는 것 입 니 다.
부모 구성 요소 대응 코드 는 다음 과 같 습 니 다.
class Parents extends Component {
constructor() {
super();
this.state = {
price: 0
};
}
getItemPrice(e) {
this.setState({
price: e
});
}
render() {
return (
<div>
<div>price: {this.state.price}</div>
{/* */}
<Child getPrice={this.getItemPrice.bind(this)} />
</div>
);
}
}
하위 구성 요소 대응 코드 는 다음 과 같 습 니 다.
class Child extends Component {
clickGoods(e) {
//
this.props.getPrice(e);
}
render() {
return (
<div>
<button onClick={this.clickGoods.bind(this, 100)}>goods1</button>
<button onClick={this.clickGoods.bind(this, 1000)}>goods2</button>
</div>
);
}
}
형제 구성 요소 간 통신형제 구성 요소 간 의 전달 이 라면 부모 구성 요 소 는 중간 층 으로 데이터 의 상호 연결 을 실현 하고 부모 구성 요 소 를 통 해 전달 합 니 다.
class Parent extends React.Component {
constructor(props) {
super(props)
this.state = {count: 0}
}
setCount = () => {
this.setState({count: this.state.count + 1})
}
render() {
return (
<div>
<SiblingA
count={this.state.count}
/>
<SiblingB
onClick={this.setCount}
/>
</div>
);
}
}
부모 구성 요소 가 후대 구성 요소 에 전달부모 구성 요소 가 후대 구성 요소 에 데 이 터 를 전달 하 는 것 은 전체 데이터 와 같은 가장 일반적인 일이 다.
사용
context
은 구성 요소 간 통신 방식 을 제공 하여 데 이 터 를 공유 할 수 있 고 다른 데 이 터 는 모두 해당 하 는 데 이 터 를 읽 을 수 있 습 니 다.사용
React.createContext
을 통 해 하나 만 들 기context
const PriceContext = React.createContext('price')
context
생 성 에 성공 한 후,아래 에 존재 하 는Provider
구성 요 소 는 데이터 원본 을 만 드 는 데 사 용 됩 니 다.Consumer
구성 요 소 는 데 이 터 를 받 는 데 사 용 됩 니 다.인 스 턴 스 는 다음 과 같 습 니 다.Provider
구성 요 소 는value
속성 을 통 해 후대 구성 요소 에 데 이 터 를 전달 하 는 데 사 용 됩 니 다.Provider
전 달 된 데 이 터 를 가 져 오 려 면Consumer
구성 요소 나contextType
속성 으로 받 을 수 있 습 니 다.대응 하 는 것 은 다음 과 같 습 니 다.
class MyClass extends React.Component {
static contextType = PriceContext;
render() {
let price = this.context;
/* */
}
}
소비자 구성 요소:
<PriceContext.Consumer>
{ /* */ }
{
price => <div>price:{price}</div>
}
</PriceContext.Consumer>
비 관계 구성 요소 전달구성 요소 간 의 관계 유형 이 비교적 복잡 한 경우 데 이 터 를 전체 자원 관 리 를 하여 통신 을 실현 하 는 것 을 권장 합 니 다.예 를 들 어
redux
.redux
의 사용 에 관 한 후속 설명3.총화
React
은 단 방향 데이터 흐름 이기 때문에 주요 사상 은 구성 요소 가 받 은 데 이 터 를 바 꾸 지 않 고 데이터 의 변화 만 감청 하 는 것 이다.데이터 가 변화 할 때 받 은 새로운 값 을 사용 하 는 것 이지 기 존의 값 을 수정 하 는 것 이 아니다.따라서 통신 과정 에서 데이터 의 저장 위 치 는 모두 상위 위치 에 저장 되 어 있 음 을 알 수 있다.
React 에서 구성 요소 간 통신 방식 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 React 구성 요소 간 통신 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
바삭바삭하고 간단한 결제 페이지 만들기먼저 Next.js에서 프로젝트를 만듭니다. Vercel & Next.js가 매우 편하기 때문에 최근에는이 구성을 사용하고 있습니다. 그런 다음 Tailwind CSS를 넣습니다. Tailwind CSS를 사용하면 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.