Skip to content

Instantly share code, notes, and snippets.

@nasum
Last active December 17, 2017 14:53
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 nasum/dad96410d753d9a31e4f to your computer and use it in GitHub Desktop.
Save nasum/dad96410d753d9a31e4f to your computer and use it in GitHub Desktop.
Vue.js用のFluxライクなライブラリVuexを試してみる ref: https://qiita.com/nasum/items/b2f11a392bf8fb125610
export default {
addTodo: 'ADD_TODO'
}
:actions.js
export default {
addTodo: 'ADD_TODO'
}
import Vue from 'Vue';
import TextForm from './components/TextForm.vue';
import ToDoList from './components/ToDoList.vue';
import store from './store/';
window.onload = function(){
var main = new Vue({
el: "body",
data: store.state,
components: {
"text-form": TextForm,
"to-do-list": ToDoList
}
})
}
export default {
ADD_TODO (state, text) {
state.todos.push(text)
}
}
<template>
<div>
<input type="text" v-model="input" @keyup.enter="addTodo"/>
</div>
</template>
<script>
import store from '../store/';
export default {
props: ['input'],
methods: {
addTodo: function(e){
var text = e.target.value;
store.actions.addTodo(text);
e.target.value = '';
}
}
}
</script>
<template>
<ul>
<li v-for="todo in todos">{{todo}}</li>
</ul>
</template>
<script>
export default {
props: ['todos']
}
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment