React useSyncExternalStore 후크와 RxJS를 함께 사용하는 방법
useSubscription
를 발견하고 RxJS와 함께 사용한 후 Rx.BehaviorSubject
와 함께 사용하고 구독 개체를 만든 다음 useSubscription(subscription)
를 호출하려면 적어도 두 개의 명령문이 필요했습니다.// create the subscription object
const subscription = useMemo(
() => ({
getCurrentValue: () => behaviorSubject.getValue(),
subscribe: callback => {
const subscription = behaviorSubject.subscribe(callback);
return () => subscription.unsubscribe();
}
}),
// Re-subscribe any time the behaviorSubject changes
[behaviorSubject]
);
// call the hook
const value = useSubscription(subscription);
자세한 내용은 여기https://www.npmjs.com/package/use-subscription를 참조하십시오.
이 새로운
useSyncExternalStore
후크를 사용하면 버전 18.1.0부터 React에 더 간단하고 통합됩니다.const counter$ = new BehaviorSubject(0);
function useCounter() {
const count = useSyncExternalStore(
useCallback(
(callback) => {
const subscription = counter$.subscribe(callback);
return () => subscription.unsubscribe();
},
[counter$]
),
() => counter$.getValue()
);
return count;
}
우리가 본 것처럼 구독 핸들러 함수를
useCallback
후크로 래핑하여 모든 변경 또는 렌더링에서 재구독 및 구독 취소를 방지해야 합니다.여기에서 전체 예를 참조하십시오: https://codesandbox.io/s/react18-2-rxjs-s3b781 .
Reference
이 문제에 관하여(React useSyncExternalStore 후크와 RxJS를 함께 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rolangom/how-to-use-react-usesyncexternalstore-hook-and-rxjs-together-o7p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)