React의 새로운 Context API를 사용하기에 완벽한 사용 사례가 있는 것 같습니다!
자세히 살펴보기
먼저 필수 패키지를 설치해야 합니다. React Native 0.59에서는 NetInfo 모듈은 별도의 패키지에 있습니다. 렌더링 메서드 외부에서 컨텍스트를 사용할 수 있도록 허용하므로 React 16.6 이상도 필요합니다. 이는 우리가 이 컨텍스트를 사용할 때 더 큰 유연성을 제공하므로 매우 유용합니다.
React Native 앱을 설정하는 데 귀찮게 하지 않고 이미 앱이 있다고 가정하겠습니다.
NetInfo을 설치해 봅시다 패키지:
npm install @react-native-community/netinfo --save
일단 설치되면 구성 요소를 만들 수 있습니다.
컨텍스트 제공자 생성
<NetworkProvide를 설정해 봅시다 r> 구성 요소. 이 구성 요소는 연결 상태를 모든 하위 구성 요소에 전달합니다.
위에 표시된 대로 connectionChange만 수신합니다. 이벤트. 해당 이벤트는 true을 반환합니다. 활성 인터넷 연결이 있거나 false인 경우 사용자가 인터넷에 연결되어 있지 않은 경우. 연결 상태가 변경되면 상태를 업데이트합니다.
상태를 업데이트하자마자 구성 요소 트리의 컨텍스트가 변경됩니다. 따라서 모든 구성 요소는 업데이트된 isConnected에 액세스할 수 있습니다. 가치. Redux와 비슷하지만 상용구 코드가 훨씬 적습니다.
컨텍스트 제공자 래핑
React의 Context API가 작동하려면 이 <NetworkProvide를 래핑해야 합니다. r> 다른 구성 요소 주변에 방금 만든 구성 요소는 다음과 같습니다.
이렇게 하면 context이 됩니다. <NetworkProvid 내부의 모든 구성요소에서 사용 가능 어>.
마지막 단계는 구성 요소에서 컨텍스트를 사용하는 것입니다. 우리는 <ExampleCompone을 사용합니다 nt> 현재:
이제 우리 구성요소는 Context API와 this.context.isConnected를 사용합니다. 우리가 사용할 수 있습니다.
이제 <ExampleCompone에서 사용자에게 메시지를 표시할 수 있습니다. nt> 사용자의 인터넷 연결이 온라인이거나 오프라인일 때.
이전 버전의 React에서는 context 렌더링 방법 외부에서는 사용할 수 없습니다. React 16.6.0부터 static contextType를 사용하여 사용할 수 있습니다. 위의 예에 표시된 것처럼. 이와 같이 사용하면 구성 요소 내에서 해당 컨텍스트를 사용하려는 위치에 더 큰 유연성이 제공됩니다.
마지막 메모
따라서 우리는 Context API가 이 사용 사례에서 이러한 전역 값을 설정하고 사용하는 데 완벽하다는 것을 보여주었습니다. 연결 상태는 전체 앱에서 사용할 수 있도록 하는 것이 중요하므로 활성 인터넷 연결이 필요한 작업이 실패할 때 사용자에게 알릴 수 있습니다.
Redux를 사용하여 동일한 작업을 수행할 수 있지만 이를 위해서는 훨씬 더 많은 코드가 필요합니다. 종속성을 제한하므로 가능한 경우 기본 React API를 사용합시다!
전체 요점은 내 GitHub에서 찾을 수 있습니다.
읽어주셔서 감사합니다!
저는 꽤 오랫동안 Medium을 사용해왔지만 일반적으로 다른 사람들의 콘텐츠를 읽고 배우는 정도였습니다. 이와 같은 튜토리얼은 수년 동안 나에게 많은 도움이 되었습니다. 그래서 제가 직접 글을 쓰는 것이 이 멋진 개발자 커뮤니티에 보답하는 방법입니다!
이 튜토리얼이 도움이 되었나요? 댓글로 알려주세요 ?
내 기사를 개선하기 위한 피드백이 있습니까? 나는 내 지식을 더 많이 향상하고 공유하고 싶습니다.
무료로 코딩을 배우세요. freeCodeCamp의 오픈 소스 커리큘럼은 40,000명 이상의 사람들이 개발자로 취업하는 데 도움을 주었습니다. 시작하세요