웹 프론트엔드 프레임워크의 관심사 분리 개선
6642 단어 discussjavascripthelpwebdev
문제
저는 몇 년 동안 React를 전문적으로 사용해 왔으며 점점 더 많이 Context 및 Hooks를 사용하여 UI 구성 요소에서 상태 및 비즈니스 로직을 분리했습니다. 최근에 저는 이 작업을 수행하기 위해 싱글톤을 사용하는 다른 접근 방식으로 LogicRoom의 예를 접했고 생각하게 되었습니다... 프레임워크에 구애받지 않기 때문에 매우 흥미롭습니다. 따라서 React에서 Svelt로 이동하려는 경우 작업이 더 쉬워질 것입니다. .
하지만 저는 토론을 시작하고 외부 사람들에게 묻고 싶었습니다. 주제에 대한 귀하의 의견은 무엇입니까? 귀사에서는 이것이 어떻게 이루어지나요? 인생에서 여느 것과 마찬가지로 하나의 정답은 없으며 모든 것은 균형입니다. 저는 React에 대한 논리가 곧 사라질 것이라고 생각하지 않기 때문에 React에 대한 제 논리가 강화되는 것을 신경 쓰지 않습니다. 그래서 당신이 그것에 대해 말해야 할 것을 듣게 해주세요!
예
예를 들어 보겠습니다... 첫 번째는 상태를 추적하기 위해 제안된 싱글톤입니다(전체 CodeSandbox에 대한 링크도 있고 포함하려고 시도했지만 계속 svg 오류가 발생했습니다... =/) 두 번째는 관리할 상태와 내 구성 요소에서 액세스할 수 있는 후크를 사용하여 공급자를 작성하는 방법입니다.
하나씩 일어나는 것
class External {
constructor() {
this.left = 0;
this.right = 0;
this.finalCall = null;
}
registerFinalCall = (finalCall) => {
this.finalCall = finalCall;
};
doFinalCall = () => {
this.finalCall(Number(this.left) + Number(this.right));
};
}
export const external = new External();
Full Example
반응 컨텍스트
import { createContext, useContext, useState, useMemo } from "react";
const SumContext = createContext({
setLeft: () => {},
setRight: () => {},
total: 0
});
export function useSum() {
return useContext(SumContext);
}
export function ProvideSum({ children }) {
const [left, setLeft] = useState(0);
const [right, setRight] = useState(0);
const total = useMemo(() => left + right, [left, right]);
return (
<SumContext.Provider value={{ setLeft, setRight, total }}>
{children}
</SumContext.Provider>
);
}
export default SumContext;
Full Example
Reference
이 문제에 관하여(웹 프론트엔드 프레임워크의 관심사 분리 개선), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/raibtoffoletto/better-separation-of-concerns-in-web-front-end-frameworks-36ho텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)