Redux에 커스텀 훅으로 계산된 값
8136 단어 reactreduxtypescriptjavascript
redux
와 mobx
어떤 것을 요청하시게 되었나요?훨훨훨훨훨훨훨훨훨훨훨훨훨훨훨훨훨훨훨훨 날아갑니다. 전형필만
mobx
의 장점 중 하나는 데코와 계산된 가치에 대해 생각합니다.@computed get discountedPrice() {
return this.price * this.discount
}
이런 식으로
store
데스티코로 겟아웃을 할 수 있습니다. redux
포함 api가 가 reselect
당신을 안내해 드리고 있습니다.이제
react
더 빠르게 계산된 값도 더 빨라졌습니다.상점
fruitStore
이에 대한 가격은 저렴합니다.const initialState: FruitStore = {
apple: { discount: 0.03, price: 1000 },
orange: { discount: 0.12, price: 3000 },
grape: { discount: 0.2, price: 8000 },
...
};
저장된 데이터는
Tag
컴포넌트에 3가지 방법으로.데이터를 찾도록 하기 위해 바꾸세요.
const discountedPrice: number = price * discount;
const billingPrice: number = price * (1 - discount);
const discountPercent: string = `${discount * 100} %`;
모든 구성 요소에 포함되는 모든 요소는 구성 요소에 통합되어 있습니다.
3가지 데이터만 저장하면 된다. 장기간에 걸쳐 복잡하게 얽혀 있는 구조로 인해 매장에 대한 관리가 어떻게 될 것 같습니까?
기초과
useMemo
계산된 가치를 구현해 드립니다.// custom hook
function useFruitTag(fruit: string) {
const { discount, price } = useSelect(({ fruitStore }) => fruitStore[fruit]);
const discountedPrice = useMemo(() => price * discount, [discount, price]);
const billingPrice = useMemo(() => price * (1 - discount), [discount, price]);
const discountPercent = useMemo(() => `${discount * 100} %`, [discount]);
return {
discountedPrice,
billingPrice,
discountPercent,
};
}
// component
function AppleTag() {
const { discountedPrice, billingPrice, discountPercent } = useFruitTag('apple');
return (
<div>
<h1>Apple</h1>
<p>{discountedPrice}</p>
<p>{billingPrice}</p>
<p>{discountPercent}</p>
</div>
);
}
환경으로 전환
reselect
나 @computed
쉽게 계산된 값을 사용할 수 있습니다. useMemo
그 대가로 많은 종류의 서비스를 제공받았고, 그로 인해 많은 손해를 입었습니다. 가장 큰 장점은 시사하는 바가 크다.추신
useMemo
가 reselect
이 뜻은 없습니다. 관련 내용은 여기 잘 설명되어 있습니다.
Reference
이 문제에 관하여(Redux에 커스텀 훅으로 계산된 값), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dylanju/redux-custom-hook-computed-value-29a1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)