zoukankan      html  css  js  c++  java
  • 利用nodejs的require.context来实现不用写impor导入组件

    先给你们看下目录结构

     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来引入组件了

    右侧打赏一下 代码改变世界一块二块也是爱
  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 交换Easy
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法训练 矩阵乘方
    QT中给各控件增加背景图片(可缩放可旋转)的几种方法
    回调函数实现类似QT中信号机制
    std::string的Copy-on-Write:不如想象中美好(VC不使用这种方式,而使用对小字符串更友好的SSO实现)
  • 原文地址:https://www.cnblogs.com/ht955/p/14964712.html
Copyright © 2011-2022 走看看