先给你们看下目录结构

stuendt和teacharts还有util是同级

主要是componentRegister.js文件

function changStr(str) {
return str.charAt(0).toUpperCase() + str.slice(1) // charAt() 方法可返回指定位置的字符。请注意,JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符串。
}
export default {
install(Vue) {
const requireAll = require.context(
'../components/teachers/components',
false,
/\.vue$/
)
  //keys()是得到文件名称是个数组
    requireAll.keys().forEach(item => {
Vue.component(
changStr(item.replace(/\.\//, '').replace(/\.vue$/, '')),
requireAll(item).default
)
}) const requireAlla = require.context(
'../components/student/components',
false,
/\.vue$/
)
requireAlla.keys().forEach(item => {
Vue.component(
changStr(item.replace(/\.\//, '').replace(/\.vue$/, '')),
requireAlla(item).default
)
})
}
}

require.context遍历当前目录下的components/teachers/components文件夹的所有.js结尾的文件,不遍历子目录 第一个参数是读取文件的路径 第二个参数是否遍历文件的子目录 第三个参数匹配文件的正则  执行后返回的是一个函数并且这个函数有三个属性 1,resolve{function}接受一个参数request,request为api文件夹下面匹配文件的相对路劲,返回这个匹配文件相对于整个工程的相对路径 2,keys{function} 返回匹配成功模块的名字组成的数组 3,id{string} 执行环境的id返回的是一个字符串,感觉id就是返回这个文件整体的路径   resolve方法返回了一个字符串代表着传入参数的文件相对于整个工程的相对路径

最后在main.js文件注册一下这个文件就行了

只要是在student下面的components文件就可以在student外面随便用 用的话就是文件名称<文件名称>  有个小小的bug就是文件名称不能用-连接 就是起名不能是这样“aaaa-bbb.vue”你用的时候<aaaaBbbb>或者<aaaabbb>就会报错name找不到

项目越多你就可以定制的越多只要在componentRegister.js文件里面加上就行了 所以在这里teacharts文件夹下面的文件也不用写import来引入组件了

利用nodejs的require.context来实现不用写impor导入组件的更多相关文章

  1. dva webpack 利用require.context加载多个model

    dva redux数据管理都在models,根据业务不同models可能会有几十甚至上百的 [模块.js], 每次在index.js使用 app.model(require('./models/exa ...

  2. 利用nodejs实现登录并转码视频(原创)

    nodejs的出现让前端人员可以使用js打造后台,也许哪天就真的摆脱了对java或者php的依赖了. 今天跟大家分享一个利用nodejs接受前端post请求,并实现视频转码的这样一个例子.视频转码用到 ...

  3. [代码]解析nodejs的require,吃豆人的故事

    最近在项目中需要对nodejs的require关键字做解析,并且替换require里的路径.一开始我希望nodejs既然作为脚本语言,内核提供一个官方的parser库应该是一个稳定可靠又灵活的渠道,然 ...

  4. 利用 nodeJS 搭建一个简单的Web服务器(转)

    下面的代码演示如何利用 nodeJS 搭建一个简单的Web服务器: 1. 文件 WebServer.js: //-------------------------------------------- ...

  5. require.context批量引入文件

    require.context 是什么 require.context 是由webpack内部实现,require.context在构建时,webpack 在代码中进行解析. 当需要引入文件夹内多个文 ...

  6. 利用 nodejs 解析 m3u8 格式文件,并下 ts 合并为 mp4

    利用 nodejs 解析 m3u8 格式文件,并下 ts 合并为 mp4 以前看视频的时候,直接找到 video标签,查看视频地址,然后下载下来.. 后来发现,好多 video 标签打开元素审查,如下 ...

  7. require.context

    带表达式的 require 语句 如果你的 require参数含有表达式(expressions),会创建一个上下文(context),因为在编译时(compile time)并不清楚具体是哪一个模块 ...

  8. vuex前端工程化之动态导入文件--require.context( )

    随着项目的复杂,文件结构越来越多,Store中modules中的文件也越来越多,如果一个一个加载是不是很麻烦呢? 先看一个项目中store项目结构: 过去都是通过import分别引入文件: 1 imp ...

  9. 使用require.context实现前端工程自动化

    require.context是什么 一个webpack的api,通过执行require.context函数获取一个特定的上下文,主要用来实现自动化导入模块,在前端工程中,如果遇到从一个文件夹引入很多 ...

  10. 利用Nodejs快速构建应用原型

    利用Nodejs快速构建应用原型 开发一个应用往往需要快速的构建原型,然后在此基础上设计和改进,前端可能立马能看到效果,但是后端业务逻辑不会那么快,这个时候其实我们需要额只是一些模拟数据,所以不需要真 ...

随机推荐

  1. 如何基于香橙派AIpro对视频/图像数据进行预处理

    本文分享自华为云社区<如何基于香橙派AIpro对视频/图像数据进行预处理>,作者: 昇腾CANN. 受网络结构和训练方式等因素的影响,绝大多数神经网络模型对输入数据都有格式上的限制.在计算 ...

  2. 力扣661(java)-图片平滑器(简单)

    题目: 图像平滑器 是大小为 3 x 3 的过滤器,用于对图像的每个单元格平滑处理,平滑处理后单元格的值为该单元格的平均灰度. 每个单元格的  平均灰度 定义为:该单元格自身及其周围的 8 个单元格的 ...

  3. 【pytorch学习】之概率

    6 概率 简单地说,机器学习就是做出预测.根据病人的临床病史,我们可能想预测他们在下一年心脏病发作的概率.在飞机喷气发动机的异常检测中,我们想要评估一组发动机读数为正常运行情况的概率有多大.在强化学习 ...

  4. OAM 深入解读:OAM 为云原生应用带来哪些价值?

    导读:OAM 是阿里巴巴联合微软在社区推出的一款用于构建和交付云原生应用的标准规范,旨在通过全新的应用定义.运维.分发与交付模型,推动应用管理技术向"轻运维"的方向迈进,全力开启下 ...

  5. SchedulerX 如何帮助用户解决分布式任务调度难题?

    ​简介:本文分别对任务调度平台的资源定义.可视化管控能力.分布式批处理能力进行了简述,并基于 SchedulerX 的能力结合实际业务场景提供了一些基础参考案例.希望通过上述内容能让大家方便地熟悉任务 ...

  6. IphoneX(10) 重启/关机, 强制重启/关机

    正常关机是同时长按 音量+ 和 右侧电源键,屏幕出现滑动按钮进行关机. 注意截图是同时短按 音量+ 和 右侧电源键. 强制关机是按照顺序按三个键:音量+   音量-  长按右侧键 Other:苹果X怎 ...

  7. WPF 使用 Skia 解析绘制 SVG 图片

    本文告诉大家如何在 WPF 里面,使用 Skia 解析绘制 SVG 图片.本文也适合控制台使用 SkiaSharp 解析绘制 SVG 图片,本文的 WPF 部分只是在 Skia 绘制完成之后,将 Sk ...

  8. python之Djiango框架简介

    基础 # HTTP响应状态码 10X:服务端已经接受到你的数据了 你可以继续提交数据进行下一步操作 20X:请求成功(200) 30X:重定向(301,302) 40X:请求错误(404) 50X:服 ...

  9. Oracle和达梦:根据外键名字查询表名

    根据外键名字查询表名 select * from user_cons_columns cl where cl.constraint_name = '外键名';

  10. postman使用中问题汇总

    当用postman来通过接口造数据时,读取参数化文件中身份证字段的值读取错误. 参数文件如下 选择参数文件后预览的数据如下 身份证号码全部变成了0000结尾的 解决方案: 需要将身份证号码用引号引起来 ...