Vue/Vuex:如何使用 Vuex 替换传递数据的发射函数? [英] Vue/Vuex: How to use Vuex to replace emitting functions that pass data?
问题描述
我正在考虑将 Vuex 添加到我的项目中以保持状态井井有条.尽管就像下面的示例一样,我将如何使用 Vuex 替换我发出的函数?Vuex 可以完全取代发射的需要吗?
父母
方法: {更新帖子(人){控制台日志(人)//做点什么}}
儿童
方法: {单击按钮(){let person = foo"this.$emit('handleUpdatePost', person)}}
我创建了一个简单的 Vue 2 CLI 应用程序作为示例,说明如何使用 Vuex 替换发射场景.
商店:
从'vue'导入Vue从 'vuex' 导入 VuexVue.use(Vuex)const store = new Vuex.Store({状态: {message: '初始消息'},突变:{更新消息(状态,新消息){state.message = newMessage;}}})导出默认商店;
Parent.vue
<div class="parent"><h2>Parent.vue</h2><div class="row"><div class="col-md-6"><label class="font-weight-bold">来自 Vuex 的消息:</label><span>{{消息}}</span>
<小时><孩子/>
</模板><脚本>从 './Child.vue' 导入 Child导出默认{成分: {孩子},计算:{信息() {返回 this.$store.state.message;}}}<样式范围>标签 {右边距:0.5rem;}</风格>
Child.vue
<div class="child"><h3>Child.vue</h3><div class="row"><div class="col-md-6"><form @submit.prevent="submitMessage"><div class="form-group"><label>新消息:</label><输入类型=文本"类=表单控制"v-model=newMessage">