velog.io 에 올라온 JavaScript 상태관리 글을 참고하면서 만들었다.
GitHub 레포지터리 my-like/js-state-proxy
items
, 이제까지 해낸 건수 count
를 state
밑에 바로 두지 않고 state
를 감싸는 _state
라는 일종의 wrapper 변수에 담았다.items
도 변경하고 동일한 트랜잭션 내에서 완료 건수 count
도 증가해야 하는데Proxy
를 통해 set
trap이 발동되어서 이게 좀 불편하다고 생각했다._state
내부의 state
에 접근하기 위하여 get()
함수를 생성해서 바로 state
라는 이름으로 접근가능하게 했다.state
에 _state.state
를 할당했더니 값이 별도로 생성될 뿐 그 때 그 때 변경되는 값에는 접근하기 힘들었다..Done!
버튼과 Cancel
버튼에 이벤트를 부여했다.// 디렉터리 구조
/src
├──lib
│ ├──abstractStore.js
│ ├──component.js
│ ├──pubsub.js
│ └──store.js
└── todo
├── components
│ ├── done-count.js
│ ├── todo-list.js
│ ├── init-event.js
│ └── init-state.js
├── todo-actions.js
├── todo-mutations.js
└── todo-state-store.js