forked from Granipouss/firevuex
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
41 lines (38 loc) · 967 Bytes
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* global Vue Vuex firebase FireVuex */
const app = firebase.initializeApp({ databaseURL: 'https://firevuex.firebaseio.com' })
const store = new Vuex.Store({})
// Binding
FireVuex.bindDatabase(store, app, {
'message': 'message',
'todos': { source: 'todos', type: 'array' }
})
/* eslint-disable no-new */
new Vue({
el: '#app',
store,
data: { newMessage: '', newTodo: '' },
computed: Vuex.mapGetters({
message: 'message/get',
todos: 'todos/get'
}),
methods: {
setMessage () {
this.$store.dispatch('message/set', this.newMessage)
},
addTodo () {
this.$store.dispatch('todos/add', {
label: this.newTodo,
done: false
})
this.newTodo = ''
},
removeTodo (todo) {
this.$store.dispatch('todos/remove', todo)
},
toggleTodo (todo) {
let newTodo = Object.assign({}, todo)
newTodo.done = !newTodo.done
this.$store.dispatch('todos/update', newTodo)
}
}
})