Skip to content

Instantly share code, notes, and snippets.

@alshdavid
Created May 15, 2019 12:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alshdavid/1d26bd7da24328d9c780525b3bb733bf to your computer and use it in GitHub Desktop.
Save alshdavid/1d26bd7da24328d9c780525b3bb733bf to your computer and use it in GitHub Desktop.
export const ListView = (store) => ({
data: () => ({
items: []
}),
methods: {
complete(id) {
store.complete(id)
},
add() {
const value = prompt('Name of todo')
store.add(item.create(value))
}
},
created() {
this.clear = store.onChange(items => this.items = items)
},
destroyed() {
this.clear()
},
template: `<div>
<button @click="add()">Add</button>
<div
v-for="item of items"
@click="complete(item.id)">
{{item.body}} {{item.complete}}
</div>
</div>`
})
import * as crayon from 'crayon'
import * as vue from 'crayon/vue'
import * as item from './item'
import { ListView } from './list-view'
// Creating store
const store = item.createStore()
// Creating router
const app = crayon.create()
app.use(vue.router())
// Using property injection to pass the store into my component
app.path('/', (res, res) => res.mount(ListView(store)))
app.load()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment