Nuxtjs插件注册

时间:2019-06-11 21:37:05

标签: javascript nuxt.js nuxt

我对Nuxt.js用于注册插件的方法感到好奇。我一直在阅读Nuxt.js的文档,但对注册方法有些困惑。

不想要在全球范围内注册vue-flag-icon之类的插件。

我的理解是,当我们注册插件时,我们使用插件文件夹如下:

import Vue from 'vue'
import FlagIcon from 'vue-flag-icon'


Vue.use(FlagIcon)

我现在可以在应用程序中的任何位置使用标志组件-我不想要这个!!!

我希望能够将插件加载到仅需要它们的组件中。

我尝试将它们作为组件加载:

components:{
 'flag': ()=> import('path to plugin') // @/plugins/vue-flag-icon
}

这不起作用。

我将插件脚本更改为:

import Vue from 'vue'
import FlagIcon from 'vue-flag-icon'

export default () => {
  Vue.use(FlagIcon)
}

然后尝试在组件内注册插件,如下所示:

   import flag from '@/plugins/vue-flag-icon';

    created(){
       flag()
   }

我的问题确实是:

  1. 如何在不导入vue实例的情况下在组件中注册插件? (我认为这叫公共汽车)
  2. 将插件直接导入组件是否是错误的做法?
  3. 正在nuxt.config.js中注册所有插件,以创建更大的下载文件供用户下载(例如:在没有textareas的页面上无需注册vue-twix),否则nuxt / webpack会处理以下内容的删除:在逐页或逐组件的基础上添加不必要的插件(因此我什至不必为此担心)?如果是这种情况,那么我会挖nuxt。

谢谢

1 个答案:

答案 0 :(得分:0)

如果只想在某些组件上使用FlagIcon,则必须将其导入并在要使用的每个组件上使用。

<template>
  <flag iso="ca" />
</template>

<script>
import FlagIcon from 'vue-flag-icon'
export default () => {
  components: {
    FlagIcon
  }
</script>

这应该有效。

对于其他组件,请记住导入该组件可能需要的所有样式表:

<style lang="scss" scoped>
  @import 'path/to/plugin/style.css';
</style>