【问题标题】:Can I use a component that uses VueX without my app also using VueX?我可以使用使用 VueX 的组件,而我的应用程序也使用 VueX 吗?
【发布时间】:2026-01-29 11:45:01
【问题描述】:
【问题讨论】:
标签:
vue.js
vuejs2
vue-component
vuex
arcgis-js-api
【解决方案1】:
是的,你可以。在大多数情况下,人们创建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 文件以查看插件所依赖的 3rd 方包,然后继续将它们安装在您应用的 node_modules 中。
您的组件“esri-search”的问题在于它没有设置为包/插件。因此,它不会在您的应用中安装它需要的任何依赖项 (like vuex, lodash etc...)。
这就是为什么您必须将 vuex 作为应用程序的依赖项安装的原因,因为当您将此组件复制粘贴到您的应用程序中时,它不是插件,它成为您的应用程序。 p>
这有意义吗? :)
【解决方案2】:
在这种情况下,我似乎能够像这样解决该错误:
npm install --save vuex
在main.js:
import VueX from 'vuex';
Vue.use(VueX);
这并不能完全回答这种情况是否总是如此,因此请接受更好的答案。