我想在我的Vue应用中使用此组件:https://commbocc.github.io/hcflgov-vue-esri-search/docs/
但是它会引发错误:TypeError: "t.$store is undefined"
我怀疑原因是我没有使用VueX,所以无法初始化组件正在寻找的VueX存储。
通常,如果我的应用程序不使用VueX,是否可以使用该组件?有办法解决吗?我认为整合VueX涉及的工作太过费力了。
答案 0 :(得分: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作为其对应用程序的依赖关系的原因,因为在复制时将此组件粘贴到您的应用程序中,它不是插件,它会成为您的应用程序。 >
这有意义吗? :)
答案 1 :(得分:0)
在这种情况下,我似乎可以解决该错误:
npm install --save vuex
在main.js
中:
import VueX from 'vuex';
Vue.use(VueX);
这并不能完全回答是否总是这样,因此可以寻求更好的答案。