首页 > 其他分享 >vue 批量自动引入并注册组件或路由

vue 批量自动引入并注册组件或路由

时间:2024-09-02 09:53:02浏览次数:12  
标签:vue fileName fileArr item 注册 组件 路由

有时候有大量的组件.vue后缀的,或.js,或.ts文件, 需要一个个的手动引入很麻烦,那么你可以尝试这样创建一个index.js

本项目使用vue3.x, vue2.x也可以照样用;

image.png

这里在components里面创建了一个idnex.js 文件

require.context 可以读取文件, 第一个参数是指当前文件夹, 第二个参数是是否递归遍历寻找子节点设为ture, 第三个正则匹配

//自动注册,不必一个个导入导出
const requireComponent = require.context(
  // 其组件目录的相对路径
  './',
  // 是否查询其子目录,递归查询
  true,
  // 匹配基础组件文件名的正则表达式
  /.(vue)$/
)

var fileArr:any[] = [] //导出路由对象

requireComponent.keys().forEach((fileName) => {
   
   
  // 获取组件配置
  const componentConfig = requireComponent(fileName)

  let compName = fileName.split("/")[fileName.split("/").length - 1].split(".")[0];
  if (componentConfig.default) {
   
   
    fileArr.push({
   
   
        name: compName,
        compnent: componentConfig.default
    })
  }
})

export default fileArr;

这样你就得到了一个数组,数组里面多个组件的对象,有名字,有组件内容,详情可以自己打印试试;

image.png

然后main.ts中引用;

fileArr.forEach(item=>{
   
   
    console.log(item.name, item.compnent);
    vue.component(item.name, item.compnent);   //全局注册了
})

遍历fileArr,将所有的组件都注册进去;这样就是全局注册了,使用的时候就不用一个一个的import了,这种做法小项目可以用,但是大型项目太多文件都全局注册恐怕会影响性能;

标签:vue,fileName,fileArr,item,注册,组件,路由
From: https://blog.csdn.net/yang295242361/article/details/141811757

相关文章

  • 基于SpringBoot+Vue+uniapp的医院在线挂号预约系统的+jsp的详细设计和实现(源码+lw+部
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • Vue, Avoided redundant navigation to current location: "/login".
    VueAvoidedredundantnavigationtocurrentlocation:"/login".=================================报错解释:这个错误是在使用Vue.js框架时,发生的一个警告,表示尝试进行一个冗余的导航到当前位置(即“/login”路径)。这通常发生在VueRouter中,当你尝试通过编程方式导航到当前正......
  • 有没有办法在vue中设置route prop?
    在Vue中,你可以通过路由配置对象来设置路由的prop。以下是一个示例:constroutes=[{path:'/your-path',component:YourComponent,props:true//启用路由的prop传递}];在上述示例中,我们将props属性设置为true,这意味着路由将把路由参数作为属性传......
  • 从Vue的Weex迁移到Rax Weex
    据说:rax几乎没啥使用文档,有问题直接查询react官方文档,屡试屡爽目前没有实践过,先存下一言生成的文档:从Vue的Weex迁移到RaxWeex涉及到从一种前端框架(Vue)到另一种框架(Rax)的转换,同时保持与Weex的兼容性。由于Weex本身是一个跨平台的移动开发框架,支持Vue和Rax等多种前端框架,迁移......
  • 使用 Supabase 保护 Next.js 路由
    要使用Supabase保护Next.js路由,你可以按照以下步骤进行操作:1.安装所需的依赖:在你的Next.js项目中,安装`@supabase/supabase-js`和`next-auth`库。2.配置Supabase:在你的项目中创建一个`.env.local`文件,并添加你的Supabase项目的URL和API密钥。3.创建认证页......
  • zdppy+vue3+onlyoffice文档管理系统实战 20240901 上课笔记 基于验证码登录功能基本完
    遗留的问题1、点击切换验证码2、1分钟后自动切换验证码点击切换验证码实现步骤:1、点击事件2、调用验证码接口3、更新验证码的值点击事件给图片添加点击事件:<img:src="'data:image/png;base64,'+captchaImg"style="width:100%;height:50px;margin-top:10......
  • Vue入门(四)Vue异步操作Axios
    一、Vue异步操作在Vue中发送异步请求,本质上还是AJAX。我们可以使用axios这个插件来简化操作!-使用步骤1.引入axios核心js文件。2.调用axios对象的方法来发起异步请求。3.调用axios对象的方法来处理响应的数据。-axios常用方法get:发起Get方式请求post:发起Po......
  • Vue入门(三)Vue生命周期
    一、Vue生命周期Vue生命周期的八个阶段创建前beforeCreate创建后created载入前beforeMount载入后mounted更新前beforeUpdate更新后updated销毁前beforeDestroy销毁后destroyedVue生命周期的八个阶段如下图:  二、生命周期示例生命周期示例代码: <!DOCTYPEhtml>......
  • 基于SpringBoot+Vue+uniapp的果蔬种植销售一体化服务平台的详细设计和实现(源码+lw+部
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的涪陵区特色农产品交易系统的详细设计和实现(源码+lw+部署
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......