vue.js - 导入插件时 Vue.use() 的目的是什么?如果我们已经使用了 vue.use ,是否需要将其添加到组件中
问题描述
我正在使用插件 vue-flag-icon - https://www.npmjs.com/package/vue-flag-icon作为标志,在他们的文档中我看到了以下初始化步骤。
import FlagIcon from 'vue-flag-icon'
Vue.use(FlagIcon);
我需要这个吗?这在他们的文档中没有指定!
export default {
components: {
FlagIcon. /// do i need to give it here ?
},
}
这是什么目的,Vue.use(...)
即使我删除它也可以正常工作。有人可以帮帮我吗?
检查了 vue 文档 - https://vuejs.org/v2/guide/plugins.html。
没有明确的想法
解决方案
Vue.use 会自动阻止你多次使用同一个插件,因此在同一个插件上多次调用它只会安装一次插件。
对于flag
组件,它声明了一个全局组件,您可以在组件中引用该组件,以便在以下示例中正确呈现。
在 vue-flag-icon 源代码中
install: function (Vue) {
if (VuePlugin.installed) {
return;
}
VuePlugin.installed = true;
Vue.component('flag', Flag);
}
您可以看到Vue.component('flag', Flag)
这是一个根级组件声明,因此,在您的组件中,您不需要声明如下内容
如果使用 Vue.use 则不需要
import { Flag } from "vue-flag-icon"
export default {
components: { Flag }
}
如果不使用 Vue.use,flag
如果您没有将其作为组件包含在您的 vue init 中,模板中的标签将引发错误。
<template>
<div id="app">
<img src="./assets/logo.png">
<flag iso="it" />
<flag iso="gb" />
<flag iso="us" />
</div>
</template>
<script>
export default {
name: 'app',
}
</script>
推荐阅读
- javascript - 背景图像仅在添加到主屏幕后才在 iOS 上显示
- python - 使用 Pandas python 35 将对象类型列转换为 float32 类型
- c# - 具有许多可观察集合的响应类'不包含'GetEnumerator'的公共定义
- python - 如何使用 jira python 将 Web 链接添加到 jira 问题中
- c# - 从 C# 批量调用 Google Cloud Storage API
- php - 如何生成 jwt -php 令牌发送和修改令牌并检查验证
- iis - IIS 应用程序池创建文件夹,其中包含 applicationhost.config
- c# - 如果我创建一个临时文件并非常频繁地修改它,这会给磁盘带来负担吗?
- linux - 守护进程与进程
- python - 类型对象“问题”没有属性“对象”