A reactive object as a store in Vue
Vue interview exercise on Provide, inject & stores, difficulty 1 of 3. Solve it in the editor beside a worked example; the tests run the moment you do.
Export a reactive `store` ({ items: string[] }) with `addItem(name)` (ignores duplicates) and `removeItem(name)`, then two components that share it: AddButton with a prop `name` (<button>Add name</button> calling addItem) and ItemList (a <ul> of <li>name <button class="remove">×</button></li>, the button removing that item, and <p class="empty">Empty</p> when there is nothing).
Each exercise pairs a worked example with a twin problem to solve in a real editor; the tests run the moment you do. Progress is saved in your browser, and in your account if you sign in.