react-redux
라이브러리의 connect()
함수를 사용하여 React 구성 요소를 Redux 저장소에 연결하려면 다음을 수행합니다.
connect
가져 오기 : 먼저 react-redux
에서 connect
기능을 가져와야합니다.
<code class="javascript">import { connect } from 'react-redux';</code>
mapStateToProps
및 mapDispatchToProps
정의 : 이러한 기능은 선택 사항이지만 일반적으로 사용됩니다. mapStateToProps
상점의 상태를 가져 와서 구성 요소에 대한 소품 객체를 반환합니다. mapDispatchToProps
dispatch
함수를 가져 와서 dispatch
에 바인딩 된 액션 제작자의 객체를 반환합니다.
<code class="javascript">const mapStateToProps = (state) => { return { // Example props todos: state.todos, }; }; const mapDispatchToProps = (dispatch) => { return { // Example action addTodo: (text) => dispatch(addTodo(text)), }; };</code>
구성 요소를 랩핑하기 위해 connect
사용하십시오 . connect
사용하여 구성 요소를 래핑하고 mapStateToProps
및 mapDispatchToProps
인수로 전달합니다. 이것은 Redux 스토어에 연결된 새로운 구성 요소를 만듭니다.
<code class="javascript">const ConnectedComponent = connect( mapStateToProps, mapDispatchToProps )(YourComponent);</code>
연결된 구성 요소 내보내기 : 마지막으로 응용 프로그램의 다른 부분에서 사용할 새로운 연결 구성 요소를 내보낼 수 있습니다.
<code class="javascript">export default ConnectedComponent;</code>
이러한 단계를 수행하면 REACT 구성 요소가 Redux Store에서 데이터를 수신하고 작업을 스토어로 발송하여 Redux 애플리케이션에서 전형적인 단방향 데이터 흐름을 가능하게합니다.
connect()
사용하여 Redux 스토어와 React 구성 요소를 연결하면 몇 가지 주요 이점이 있습니다.
connect()
사용하면 매장에서 구성 요소가 필요한 데이터를 선언적으로 지정하여 응용 프로그램에서 상태를 관리하는 프로세스를 단순화 할 수 있습니다.connect()
는 Hood 아래에 shouldComponentUpdate
것입니다. 이는 상태가 변경 될 때 불필요한 재 렌즈를 방지하지만 관련 소품은 그렇지 않은 경우 응용 프로그램의 성능을 최적화하는 데 도움이 될 수 있습니다.connect()
상태가 구성 요소를 통과하는 방법을 단순화하여 프로스 드릴링을 줄이고 복잡한 상태 상호 작용을보다 쉽게 관리 할 수 있습니다.connect()
에 연결된 구성 요소는 Redux 저장소를 조롱하고 사전 정의 된 상태 및 동작으로 분리하여 구성 요소를 테스트 할 수 있기 때문에 테스트하기가 더 쉽습니다. mapStateToProps
및 mapDispatchToProps
특정 목적을 제공하는 connect()
함수 내에서 중요한 기능입니다.
MapStateProps :이 기능은 전체 Redux Store 상태를 첫 번째 인수로 취하고 개체를 반환합니다. 이 개체의 키는 구성 요소로 전달되는 소품이됩니다. 기본적으로 Redux 상태의 일부를 구성 요소의 소품에 매핑하여 구성 요소가 상태 변경 사항을 구독 할 수 있습니다. 예를 들어:
<code class="javascript">const mapStateToProps = (state) => { return { todos: state.todos, }; };</code>
이 예에서는 Redux Store의 상태가 변경 될 때마다 mapStateToProps
실행되며 todos
상태가 변경되면이 새로운 todos
데이터를 연결된 구성 요소에 소품으로 전달합니다.
MapDispatchToprops :이 기능은 Redux Store에서 dispatch
기능을 인수로 가져 와서 액션 제작자가있는 객체를 값으로 반환합니다. 이 액션 제작자는 호출되면 액션을 Redux 매장에 파견합니다. 물체의 키는 구성 요소의 소품이됩니다. 예를 들어:
<code class="javascript">const mapDispatchToProps = (dispatch) => { return { addTodo: (text) => dispatch(addTodo(text)), }; };</code>
여기에서 addTodo
연결된 구성 요소의 소품이됩니다. addTodo
구성 요소는 구성 요소 내에서 this.props.addTodo(text)
로 호출 될 수 있습니다.
Redux와 함께 connect()
사용하면 React 응용 프로그램의 성능에 긍정적 및 부정적인 방식으로 영향을 줄 수 있습니다.
긍정적 인 영향 :
connect()
함수는 자동으로 shouldComponentUpdate
. 이는 연결된 구성 요소가 상태의 관련 부분 ( mapStateToProps
가 결정한)이 실제로 변경되었을 때만 재 렌더링하여 불필요한 재 렌즈를 줄임으로써 성능을 향상시킬 수 있음을 의미합니다.connect()
응용 프로그램을 통해 데이터 흐름을 단순화하여 구성 요소 트리를 통해 소품을 깊이 전달해야 할 필요성을 줄이고 구성 요소 렌더링 효율을 향상시킬 수 있습니다.잠재적 인 부정적인 영향 :
mapStateToProps
기능이 최적화되어 실수로 재 렌즈가 도전적이 될 수 있으므로 올바르게 처리하지 않으면 성능에 영향을 줄 수 있습니다. 이러한 영향을 완화하기 위해 개발자는 mapStateToProps
의 reselect
와 함께 Memoization과 같은 기술을 사용하거나 연결 구성 요소에 React.memo
사용하여 PROP 변경에 기초하여 Re-Renders를 추가로 제어 할 수 있습니다. 또한, 상태 구조의 신중한 설계 및 매장 사용은 더 큰 응용 분야에서 효과적으로 성능을 관리하는 데 도움이 될 수 있습니다.
위 내용은 Connect ()를 사용하여 React 구성 요소를 Redux 상점에 어떻게 연결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!