반응형
나는 특정 모듈에서 `store`의 `writable`은 이용하되, `readable`인터페이스만 노출하고 싶었다. 데이터 쓰기 인터페이스를 함수나 커맨드 형태(MVVM 패턴)로만 제공할 수 있어야, 프로젝트가 커졌을 때, 문제가 되지 않기 때문이다.
# Example - convert `writeable` to `readable`
import {writable} from 'svelte/store'
// writable의 업데이트 기능은 이 모듈에서만 사용(export하지 않음)
const _now = writable(Date.now())
// `export const 변수명 = readable(값)`과 같은 효과
export const now = {subscribe: _now.subscribe}
// 필요에 따라, 값 변경관련 인터페이스(함수, 클래스, 클래스메소드)를 export해주면 다른 개발자에 의해 값이 임의적으로 변경되는 사이드이펙트를 줄일 수 있다.
// 지금은 시스템에 의해서만 값이 변경되고, 그 값을 다른 컴포넌트에서 갖다 쓰는 구조.
function updateNow(ms:number = 1000) { // 1000ms = 1초
setTimeout(() => {
_now.set(Date.now())
return updateNow()
}, ms)
}
updateNow()
---
더 좋은 방법이 있다면, 공유 바랍니다.
반응형
'IT' 카테고리의 다른 글
Android emulator에서 Push notification이 수신되지 않을 때 (0) | 2022.12.04 |
---|---|
[Refactoring 2판]에 대한 내 생각과 비판 (0) | 2022.11.13 |
NestJS로 쉽게 개발하는 방법 (0) | 2021.03.27 |
기술 스택 전면 교체와 고려해야 할 사항 (8) | 2020.08.01 |
DB의 중복 값 지우기 (0) | 2020.02.27 |