用vuex,简单的二个平行组件值传递的问题
关键的三个文件位置如上:
a.vue:
b.vue:
信息是:{{msg}}
store.js
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({ state: { message: '' }, mutations: { updateMessage(state, message) { state.message = message } } }) export { store }
预期想要的效果是在组件a里输入值,然后在组件b里可以获取(显示)到a组件里输入的值。不知道哪里出错了,由于刚看vuex,所以不要嫌我问的问题简单,嘿嘿。
this.$store
a.vue:
computed: {
message: this.$store.state.message
},
methods: {
updateMessage (e) {
this.$store.commit('updateMessage', e.target.value)
}
}
我讲下常规流程。
main.js
import 'babel-polyfill' import Vue from 'vue' import App from './components/App.vue' import store from './store' new Vue({ el: '#app', store, // 这里是关键代码。 render: h => h(App) })
组件内使用
import { mapState } from 'vuex' export default { .... 省略代码 computed: mapState({ msg: state => state.message }) .... 省略代码 }
或者
export default { .... 省略代码 computed:{ msg: this.$store.state.message } .... 省略代码 }
另外,官方demo讲得很详细,请研究下代码
https://github.com/vuejs/vuex...