신호를 사용한 React.js 상태 관리
8898 단어 preactsignalsreactjavascript
이를 통해 비용이 많이 드는 모든 렌더링 작업을 건너뛰고 신호의 값 속성에 액세스하는 트리의 모든 구성 요소로 즉시 이동할 수 있습니다.
이 기사에서는 React와 함께 신호를 사용합니다.
설치
npm i @preact/signals-react
신호 생성
신호 함수를 사용하여 상태(신호)를 생성할 수 있습니다. 신호 함수는 기본값
signal(value)
을 매개변수로 사용하고 Proxy 객체를 반환합니다. 신호 값은 signal.value
속성을 사용하여 액세스할 수 있습니다. signal.value = newValue
를 사용하여 신호 값을 설정할 수도 있습니다.import { signal } from "@preact/signals-react";
const count = signal(0);
카운터 구성요소
import React from "react";
import { signal } from "@preact/signals-react";
const count = signal(0);
const Counter = () => <button onClick={() => count.value++}>{count}</button>;
참고: React Hooks는 구성 요소의 루트 내부에서만 호출할 수 있으며, 신호는 구성 요소 외부에서 사용할 수 있습니다.
효과
useEffect 후크와 같은 종속성 배열을 전달할 필요가 없습니다. 종속성이 변경될 때만 자동으로 종속성을 감지하고 효과를 호출합니다.
import React from "react";
import { signal, effect } from "@preact/signals-react";
const count = signal(0);
const Counter = () => {
effect(() => console.log(count.value));
return <button onClick={() => count.value++}>{count}</button>;
};
고급 사용법
구성 요소 트리 외부의 신호로 작업할 때 값을 적극적으로 읽지 않으면 계산된 신호가 다시 계산되지 않는다는 것을 알 수 있습니다.
const count = signal(0);
const double = computed(() => count.value * 2);
const Counter = () => {
effect(() => console.log(count.value));
return (
<div>
<h1>{double}</h1>
<button onClick={() => count.value++}>{count}</button>
</div>
);
};
라이브 데모: 카운터 데모
읽어주셔서 감사합니다 😊
질문이나 추가 사항이 있습니까? 댓글을 남겨주세요.
당신이하지 않은 경우 읽어야합니다
자세한 내용은 .
Github , , , Medium , Stackblitz에서 나를 잡아라.
Reference
이 문제에 관하여(신호를 사용한 React.js 상태 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/devsmitra/reactjs-signal-for-state-mangement-21pf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)