我想在我的Vue应用程序中使用此组件:https://commbocc.github.io/hcflgov-vue-esri-search/docs/
然而,这是一个错误:TypeError: "t.$store is undefined"
我怀疑原因是我没有使用VueX,所以我没有初始化组件正在寻找的VueX存储。
通常,如果我的应用程序没有使用VueX,是否可以使用?这有什么办法吗?我认为合并VueX所涉及的工作量太高了。
是的你可以。在大多数情况下,人们创造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作为你的应用程序的依赖,因为当你复制粘贴这个组件到你的应用程序,它不是一个插件,它就成了你的应用程序。
这有意义吗? :)
在这种情况下,我似乎能够像这样解决这个错误:
npm install --save vuex
在main.js
:
import VueX from 'vuex';
Vue.use(VueX);
这并不能完全回答这是否总是如此,所以愿意接受更好的答案。