【问题标题】:how to use vuex in vue components?如何在 vue 组件中使用 vuex?
【发布时间】:2018-04-17 09:45:59
【问题描述】:

我有一个 vuex 示例项目:

app.vue:

<template>
    <div>{{message}}</div>
</template>

<script>
import store from "./app.store.js";

export default {
    computed: { message: () => store.message }
}
</script>

app.store.js:

import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

const state = { message: "Hello World" };
const getters = { message: state => state.message };
const store = new Vuex.Store({ state, getters });

export default store;

{{message}} 占位符被替换为空字符串,而不是“Hello World”。 vue组件中如何使用vuex?

【问题讨论】:

    标签: vue.js vuex


    【解决方案1】:

    首先,确保在你的 Vue 实例中包含 store,如下所示:

    new Vue({ el: '#app', store });
    

    另外,在计算属性中,不要直接访问存储(尽管它非常好),使用您创建的 getter。

    现在,当您在 Vue 实例中注入 store 时,它​​会自动对您的所有子组件可用——这意味着您无需导入它,而只需在您的组件中像这样使用它:

    computed: { return this.$store.getters.message }
    

    您可以阅读有关主题here 的更多信息。

    【讨论】:

    • 将 store 对象传递给 Vue 构造函数使得“this.$store”变量在组件中可用。但是,我更喜欢使用箭头函数,其中“this”引用不可用 - 所以我在每个 vue 组件中导入存储。 Vue 构造函数中的 store 对象在这种情况下是可选的。我的代码的问题是缺少 .getters 参考。
    • 天哪您的评论箭头功能不包括“这个”!我用 count: () => { 而不是 count () { 你是最棒的!
    猜你喜欢
    • 1970-01-01
    • 2018-08-22
    • 2017-11-11
    • 2020-05-04
    • 2021-09-21
    • 2021-01-28
    • 2019-08-18
    • 2021-11-04
    • 2021-12-25
    相关资源
    最近更新 更多