如何将 Vuex 添加到我的 Laravel Nova 工具?

kee*_*ees 2 php laravel vuex laravel-nova

如何将 Vuex 商店添加到自定义生成的 Laravel Nova 工具中?

我在medium上找到了关于该主题的这篇文章,但商店没有出现在de Tool.vue组件中。

我在这个项目中使用 Nova 1.3.2。

kee*_*ees 5

我发现Nova已经在使用Vuex,你可以将自己的Vuex商店模块添加到现有商店中。

文档中没有介绍这一点,所以我不知道这是否会在新版本中继续工作,但它似乎在 Nova 1.3 中起作用。

您可以将 Vuex 模块注册到 nova-components/MyTool/resources/js/tool.js 中,如下所示:

import datastore from './store/datastore'


Nova.booting((Vue, router, store) => {
    store.registerModule(
        'mynamespace/datastore', datastore
    );

    // router.addRoutes( ......


});
Run Code Online (Sandbox Code Playgroud)

您可以在 Tool.vue 中使用它,如下所示:

<template>
    <div>
      {{ testing }}
    </div>
</template>

<script>
    import {mapGetters} from 'vuex'
    export default {
        mounted() {
        },
        computed: {
            ...mapGetters({
                testing: 'mynamespace/datastore/testing'
            })
        }
    }
<script>
Run Code Online (Sandbox Code Playgroud)

Nova 将所有资源添加到同一个存储中,因此您必须使用命名空间存储来防止冲突。

我希望这能为您节省一些时间。