我可以在没有使用VueX的应用程序的情况下使用使用VueX的组件吗?

问题描述 投票:1回答:2

我想在我的Vue应用程序中使用此组件:https://commbocc.github.io/hcflgov-vue-esri-search/docs/

然而,这是一个错误:TypeError: "t.$store is undefined"

我怀疑原因是我没有使用VueX,所以我没有初始化组件正在寻找的VueX存储。

通常,如果我的应用程序没有使用VueX,是否可以使用?这有什么办法吗?我认为合并VueX所涉及的工作量太高了。

vue.js vuejs2 vue-component vuex arcgis-js-api
2个回答
2
投票

是的你可以。在大多数情况下,人们创造vue-plugins。这样做时,您可以像npm install myCoolPlugin一样安装它们并通过导入它们在您的应用程序中使用它们:import myCoolPlugin from 'myCoolPlugin'然后根据插件,您可以像vuex一样全局安装它:

Vue.use(myCoolPlugin)

或者你可以直接在你想要的地方明确地使用插件的组件,如下所示:

import {coolButton, coolInput} from 'myCoolPlugin';
export default {
    name: 'home-page',
    components: [coolButton, coolInput],
    ...
}

插件还有一个package.json文件,其中包含有关该插件依赖的元数据等(就像您的应用程序一样)。当您使用npm i myCoolPlugin时,npm会检查插件的package.json文件以查看插件所依赖的第三方软件包,然后继续在应用程序的node_modules中安装它们。

组件“esri-search”的问题在于它未设置为包/插件。因此,它不会在您的应用程序中安装它需要的任何依赖项(like vuex, lodash etc...)。

这就是为什么你必须安装vuex作为你的应用程序的依赖,因为当你复制粘贴这个组件到你的应用程序,它不是一个插件,它就成了你的应用程序。

这有意义吗? :)


0
投票

在这种情况下,我似乎能够像这样解决这个错误:

npm install --save vuex

main.js

import VueX from 'vuex';
Vue.use(VueX);

这并不能完全回答这是否总是如此,所以愿意接受更好的答案。

© www.soinside.com 2019 - 2024. All rights reserved.