首页 > 其他分享 >vue项目自动导入components

vue项目自动导入components

时间:2022-12-13 15:45:17浏览次数:45  
标签:vue const app 导入 components 组件 path

开发项目中一般组件都放在 components 目录下,对于一些高频使用的组件我们需要在入口文件中设置为全局组件,

一个一个搞,很繁琐,这里通过webpack自动挂载components为全局组件。

webpack 提供了 require.context 方法 允许我们自己创建一个上下文,webpack 在构建的时候会解析这些上下文。

目录:

- src

- components/

  -auto/

    -components1

      -index.vue

 

require.context 方法接收四个参数

  1. directory 一个文件目录
  2. includeSubdirs 是否包含子目录
  3. filter 一个正则,用来过滤
  4. mode 加载模式

 

使用例子:

// components/index.js
export default function (app) {
    // 创建上下文
    const componentsContext = require.context('./auto', true, /\.vue/); 
    // 调用函数的keys方法获取到指定目录的下面文件路径
    componentsContext.keys().forEach((path) => {
        const componentName = path.split('/')[1].replace('.vue', '');
        // 调用上下文函数,根据path获取到组件函数
        const component = componentsContext(path);
        // 全局挂载
        app.component(componentName, component.default);
    });
}

函数使用:

// main.js
import useAutoComponents from '@/components/index';
const app = createApp(App);
useAutoComponents(app);

然后就可以在组件里面自由使用了

 

标签:vue,const,app,导入,components,组件,path
From: https://www.cnblogs.com/alone4436/p/16978994.html

相关文章

  • SpringBoot和VUE
    一、案例结构用springboot做后端接口,采用restful风格。用vue-cli来创建前端项目,通过axios进行前后端交互。来实现用户的增删改查操作。二、效果图点击修改:点击添加:三、服务......
  • 【Unity】超级坦克大战(一)搭建项目、导入框架、前期开发准备
    更新日期:2020年7月9日。项目源码:在终章发布免责声明:超级坦克大战使用的图片、音频等所有素材均有可能来自互联网,本专栏所有文章仅做学习和教程目的,不会将任何素材用于任何......
  • postman raw和form-data vue
    postman中的form-data和raw格式是不同的参考:https://blog.csdn.net/qq_40652539/article/details/102912133普通的post传参中传的json字符串axios.defaults.headers['Co......
  • 初学VUE遇见的问题
    1、关于语法糖问题:HTML如下:<selectv-model="sl"><option:value="opt.value"v-for="optinoptions">{{opt.text}}</option></select>如果不用语法糖......
  • idea 导入项目后 左侧文件夹为空的解决办法
    点击File→ProjectStructure在弹出的界面选择Modules→+→importModule,然后选择你导入文件点击OK, 选择导入类型next→勾选Searchforprojectsrecursively(递归寻找项......
  • vue当用户使用ie访问时跳转到浏览器升级界面
    若依有现成的代码,可以修改一下就能用了,首先修改public下面的index.html,判断如果是ie浏览器则跳转到升级浏览器界面<!DOCTYPEhtml><htmllang=""><head><meta......
  • 通过curl 导入nacos配置文件
    在命令行导入nacos配置文件:参考文档:https://blog.csdn.net/eddiehrs/article/details/114698951curl--location--requestPOST'http://nacosip:8848/nacos/v1/cs/conf......
  • 对vue的研究
    ​​beforeDestroy​​类型:​​Function​​详细:实例销毁之前调用。在这一步,实例仍然完全可用。该钩子在服务器端渲染期间不被调用。参考:​​生命周期图示​​​​destroyed......
  • vue全局API
    ​​Vue.extend(options)​​参数:​​{Object}options​​用法:使用基础Vue构造器,创建一个“子类”。参数是一个包含组件选项的对象。​​data​​​ 选项是特例,需要注......
  • 对vue的api的研究
    ​​Vue.config​​ 是一个对象,包含Vue的全局配置。可以在启动应用之前修改下列属性:​​silent​​类型:​​boolean​​默认值:​​false​​用法:Vue.config.silent=tru......