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