// App.vue
<template>
<div id="app">
{{ message }} <br/>
<!-- <input v-model="message" /> -->
<input :value="message" @input="updateMessage" />
</div>
</template>
<script>
// import { mapState, mapActions } from 'vuex';
export default {
name: 'app',
computed: {
message () {
return this.$store.state.message;
}
},
methods: {
updateMessage (e) {
this.$store.commit('updateMessage', e.target.value);
}
}
}
</script>
<style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>
// main.js
import Vue from 'vue'
import Vuex from 'vuex'
import App from './App.vue'
Vue.use(Vuex)
Vue.config.productionTip = false
const store = new Vuex.Store({
strict: true,
state: {
message: 'Hello Vuex'
},
mutations: {
updateMessage (state, message) {
state.message = message;
}
},
getters: {
}
});
new Vue({
render: h => h(App),
store
}).$mount('#app')