ReactMasters / state-manager

상태관리 라이브러리
MIT License
0 stars 0 forks source link

스토어 생성시 action를 전달할 수 있도록 변경 #16

Closed jordan-choi closed 1 month ago

jordan-choi commented 1 month ago
JeGwan commented 1 month ago

reducer -> action 이죠? action 을 넣는 스토어라면 store 를 그대로 리턴하는게 아닌, 감싼 무엇인가로 리턴해야할텐데요.

https://github.com/ReactMasters/state-manager/pull/8#discussion_r1750284681 에서 문의주신 것은 store 를 그대로 쓰자는 제안처럼 보여서 이 이슈랑 대치되는 것 같은데 아닌가요?

혹시 어떤 API 모양을 생각하고 계신지 궁금합니다.

image
JeGwan commented 1 month ago

@56aiden90 @jordan-choi action 을 추가할 경우 store 는 무어라 불릴까요~? 아래 예시에서 mock 이 대체될 이름.

const mock = createMock(0, {
  increment: (prev) => prev + 1),
  reset: () => 0,
})

// 상태 관련
mock.get()
mock.set()

// 액션
mock.increment()
mock.reset()
jordan-choi commented 1 month ago

@JeGwan 제 의견은 내부적으로 사용하는 Store를 그대로 내보내자가 아닌 유저가 바로 이해할 수 있는 인터페이스를 제공하자는 의견이었습니다. 제관님 의견처럼 broadcast와 같이 유저가 알 필요 없는 메서드는 제외하고 getState, setState, subscribe와 액션을 노출하고자 합니다.

const countStore = createStore(0, {
  increment: (prev) => prev + 1,
  reset: () => 0,
}

countStore.getState() // 0
countStore.setState(1) // 1
countStore.increment() // 2
countStore.reset() // 0

const unsubscibeCountStore = countStore.subscribe((v) => {
  console.log(v)
}) 

아 그리고 reducer가 아니라 action 맞습니다! 감사합니다 ㅎㅎ