guest@jyi.app:~/blog— bash
--:--:-- KST
$ cat ./posts/38.md
IT 2022.10.10 · 1 min read

스벨트에서 readable만 노출하기(Svelte - writable to readable)

나는 특정 모듈에서 storewritable은 이용하되, 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()

---

더 좋은 방법이 있다면, 공유 바랍니다.

UTF-8  ·  LF ·  정화된 밤 (Verklärte Nacht) Op.4