首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue (nuxt)中的全局组件

Vue (nuxt)中的全局组件
EN

Stack Overflow用户
提问于 2017-03-27 07:49:44
回答 5查看 29.6K关注 0票数 21

在构建Vue应用程序时,我们在每个模板中重用某些Vue组件。我们的网格系统是由.region、.layout、.grid、.column元素组成的。它们都是单独的Vue组件( .)。

现在,我们在每个模板中都会这样做:

代码语言:javascript
复制
import BlMain from '~components/frame/main/Main.vue'
import BlRegion from '~components/frame/region/Region.vue'
import BlLayout from '~components/frame/layout/Layout.vue'
import BlGrid from '~components/frame/grid/Grid.vue'
import BlColumn from '~components/frame/column/Column.vue'

有办法在项目中全局导入Vue组件吗?创建包含上述导入的组件Frame.vue并在每个模板中添加框架组件是一个选项吗?其他FE框架是如何解决这一问题的?

我们在Vue上使用Nuxt JS

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-06-12 14:41:47

您应该使用注册帐户的插件。

代码语言:javascript
复制
// plugins/bl-components.js

import Vue from 'vue'
import BlMain from '~components/frame/main/Main.vue'
import BlRegion from '~components/frame/region/Region.vue'
import BlLayout from '~components/frame/layout/Layout.vue'
import BlGrid from '~components/frame/grid/Grid.vue'
import BlColumn from '~components/frame/column/Column.vue'
    
const components = { BlMain, BlRegion, ... }
   
Object.entries(components).forEach(([name, component]) => {
    Vue.component(name, component)
})
代码语言:javascript
复制
// nuxt.config.js

export default {
    plugins: ['~plugins/bl-components']
}
票数 58
EN

Stack Overflow用户

发布于 2019-07-10 12:24:59

!!!始终以Base开头的组件命名,例如:BaseIcon.vue

  1. 首先,您需要在插件文件夹中创建一个插件,我调用了我的global.js
  2. 安装房车: npm安装房车
  3. 在global.js内部添加以下代码:
代码语言:javascript
复制
import Vue from 'vue'
import upperFirst from 'lodash/upperFirst'
import camelCase from 'lodash/camelCase'

const requireComponent = require.context(
  '~/components',
  false,
  /Base[A-Z]\w+\.(vue|js)$/
)

requireComponent.keys().forEach((fileName) => {
  const componentConfig = requireComponent(fileName)

  const componentName = upperFirst(
    camelCase(fileName.replace(/^\.\/(.*)\.\w+$/, '$1'))
  )

  Vue.component(componentName, componentConfig.default || componentConfig)
})
  1. 在您的nuxt.config.js中添加plugins: ['@plugins/global.js']
  2. 现在,您只能通过键入<BaseIcon />来使用基本组件。
票数 7
EN

Stack Overflow用户

发布于 2020-11-24 17:14:09

在您的nuxt.config.js中,将components设置为true

https://nuxtjs.org/docs/2.x/configuration-glossary/configuration-components

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43040692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档