首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >惯性栈在Laravel 8上使用vuex

惯性栈在Laravel 8上使用vuex
EN

Stack Overflow用户
提问于 2021-09-03 15:38:26
回答 2查看 2.5K关注 0票数 1

我正在学习如何使用Vuex,我尝试在一个带有惯性堆栈的Laravel 8上使用它,我使用的是vue 3。

存储/index.js

代码语言:javascript
复制
import { Store } from 'vuex'


export const store = new Store({
    state () {
        return {
            count:0
        }
    },
    mutations:{
        INCREMENT(state){
            state.count++
        },
        DECREMENT(state){
            state.count--
        }
    }
})

这是我的app.js

代码语言:javascript
复制
require('./bootstrap');

import { createApp, h } from 'vue';
import { createInertiaApp } from '@inertiajs/inertia-vue3';
import { InertiaProgress } from '@inertiajs/progress';
import Vuex from 'vuex';
import { store } from './Store'

const appName = window.document.getElementsByTagName('title')[0]?.innerText || 'Laravel';

createInertiaApp({
    title: (title) => `${title} - ${appName}`,
    resolve: (name) => require(`./Pages/${name}.vue`),
    setup({ el, app, props, plugin }) {

        return createApp({ render: () => h(app, props),store })
            .use(plugin)
            .use(Vuex)
            .mixin({ methods: {
                route,
             }
            })
            .mount(el);
    },
});

InertiaProgress.init({ color: '#4B5563' });

但我总是以控制台错误告终:

代码语言:javascript
复制
app.js:106250 Uncaught Error: [vuex] must call Vue.use(Vuex) before creating a store instance.

我也试过:

代码语言:javascript
复制
.use(store)

但似乎不起作用。如果有人能告诉我我错过了什么或者我做错了什么,我会很感激

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-03 23:52:44

我在vuex 3.x.x中也遇到了这个问题,我这样做了,它起了作用:

代码语言:javascript
复制
npm uninstall --save vuex

然后重新安装它:npm install --save vuex@next (vuex4.x.x)

在app.js中,我使用了.use(store)

我不知道它是否改变了什么,只是在存储/index.js中,我导出为export default new Store({...})

票数 2
EN

Stack Overflow用户

发布于 2022-01-15 02:27:30

Store/index.js

代码语言:javascript
复制
import { createApp } from 'vue';
import { createStore } from 'vuex';

const store = createStore({
        state: {
            count:0
        },
        mutations:{
            INCREMENT(state){
                state.count++
            },
            DECREMENT(state){
                state.count--
            }
        }
    })

export default store

,这是我的app.js

代码语言:javascript
复制
require('./bootstrap');

import { createApp, h } from 'vue';
import { createInertiaApp } from '@inertiajs/inertia-vue3';
import { InertiaProgress } from '@inertiajs/progress';
import store from '@/store/index';


const appName = window.document.getElementsByTagName('title')[0]?.innerText || 'Laravel';

createInertiaApp({
    title: (title) => `${title} - ${appName}`,
    resolve: (name) => require(`./Pages/${name}.vue`),
    setup({ el, app, props, plugin }) {

        return createApp({ render: () => h(app, props),store })
            .use(plugin)
            .use(store)
            .mixin({ methods: {
                route,
             }
            })
            .mount(el);
    },
});

InertiaProgress.init({ color: '#4B5563' });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69047486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档