首页 文章

Nuxt - 根据布局的全局组件

提问于
浏览
0

我正在开发Nuxt通用应用程序,其中我有两个布局,一个用于控制面板,一个用于前端UI .

我需要的是注册全局组件,但我需要它们只是特定布局的全局,我不想在我的前端应用程序的捆绑中下载不必要的脚本 .

有办法做到这一点吗?

2 回答

  • 0

    根据docs全局组件在Vue原型上注册,可以从创建的Vue实例中的任何组件访问 . 这意味着,只要您使用单个实例,就会共享所有全局注册(组件,过滤器,混合等) .

    所以,答案是没有简单的方法可以做到这一点,特别是当Nuxt.js负责webpack配置和路由分裂的基本部分时 .

    应该在本地注册组件,以优化性能 .

    您可能想要查看的另一个建议是,即使您优化了组件的加载,应用程序仍将加载所有已声明的存储模块,插件,外部库等 . 根据我的经验,最重要的是,一旦设置了自动部署该应用程序和一些更改必须部署到控制面板 - 整个站点将不得不进行维护 .

    我认为将前端和控制面板分离到自己的应用程序是一种很好的做法,这样可以将责任分开,并且是向应用程序的前端部分提供最佳优化的唯一方法 .

    控制面板通常在子域上可用,但可以在Web服务器上配置为子文件夹,例如, domain.com/control-panel .

  • 0

    两步可以解决您的问题:

    • 将global_component.js文件制作成插件目录

    然后添加下面的代码,

    import Vue from 'vue'
    import your_component from '../your component directory/your_component.vue'
    
    Vue.component('your-component', your_component)
    
    • 将此js文件添加到Nuxt.config.js插件块中

    插件:['@ plugins / global_component.js'],

    • 现在您可以将组件用于以下任何模板
    <template>
      <section class="container">
      <your-component></your-component>
      </section>
    </template>
    

相关问题