vue中的require使用

 更新时间:2023年08月05日 10:47:58   作者:程序员的脱发之路  
require是node中的一个方法,他的作用是用于引入模块、 JSON、或本地静态文件,这篇文章主要介绍了vue中的require使用,需要的朋友可以参考下

vue中的require

一、基本概念

require 是 node 中的一个方法,他的作用是 用于引入模块、 JSON、或本地静态文件。require会在编译过程中被执行,最终会得到对应文件的内容(例如json文件)或者是文件编译后的目录路径(例如图片文件,当然如果图片大小小于一定值,会被直接转换为base64编码,具体配置参考vue-cli)。

二、具体演示

1.引入json

当我们想要在代码中使用本地json数据时,我们除了可以发起一个get请求外,我们还可以使用require直接引入:在public文件中放入测试json a.json

引入json:

const a = require('/public/a.json')
    console.log(a)

输出内容:

2.引入图片

同样的位置放入一张图片 logo.png(6KB)img.png(500KB)

引入图片:

const logo = require('/public/logo.png')
console.log(logo)
const img = require('/public/img.png')
console.log(img)

输出内容:

注意:vue项目里,在javascript中使用图片时,一定要用require引入,不然就会无法获取到图片因为在js中直接使用字符串路径时,编译后也会使用当前字符串路径引入,而编译后的图片路径并不一定是图片存放的目录路径。而使用require引入时,就会获取到图片编译后的路径了。

三、require.context

require.context可以遍历文件夹的文件,从中获取指定文件,自动导入模块。

require.context(directory, useSubdirectories, regExp, mode = 'sync')

directory: 表示检索的目录useSubdirectories:表示是否检索子文件夹regExp: 匹配文件的正则表达式,一般是文件名mode: 加载模式,“sync” | “eager” | “weak” | “lazy” | “lazy-once”

也就是说当文件夹中有多个文件时,我们可以一次性引入。

引入图片:

const imgFiles = require.context('/public', false, /.png$/)
imgFiles.keys().forEach((key) => {
  console.log(key, imgFiles(key))
})

.keys()获取引入的所有文件的key,content(key)获取引入文件的内容(路径或者base64)

引入json

const jsonFiles = require.context('/public', false, /.json$/)
jsonFiles.keys().forEach((key) => {
  console.log(key, jsonFiles(key)) // 旧的版本vue-cli可能需要 jsonFiles(key).default获取,请自行判断
})

引入模块js:

建立两个js文件

引入:

const jsFiles = require.context('/public', false, /.js$/)
jsFiles.keys().forEach((key) => {
  console.log(key, jsFiles(key))
})

引入vue文件:

我们可以用来批量注册全局组件新建两个组件:

批量引入并注册:

app.use(store).use(router).mount('#app')
const comFiles = require.context('@/components', false, /.vue$/)
comFiles.keys().forEach((key) => {
  const reqCom = comFiles(key).default
  const comName = reqCom.name || key.replace(/\.\/(.*)\.vue/, '$1')
  console.log(key, reqCom)
  app.component(comName, reqCom)
})

Vue require 使用

require.context  使用 一次引入多个文件
require.context('文件路径',true/false,正则表达式)
const modulesFiles = require.context('./modules', true, /\.js$/) 
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
  // set './app.js' => 'app'
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')  // 替换后缀名
  const value = modulesFiles(modulePath)  // 文件内容
  modules[moduleName] = value.default
  return modules
}, {})

到此这篇关于vue中的require使用的文章就介绍到这了,更多相关vue中的require内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue接口封装的完整步骤记录

    Vue接口封装的完整步骤记录

    对于中小型企业,vue应用越来越多,学习vue相对于react的成本要低点,入门相对简单。这篇文章主要给大家介绍了关于Vue接口封装的相关资料,需要的朋友可以参考下
    2021-05-05
  • vue多页面项目中路由使用history模式的方法

    vue多页面项目中路由使用history模式的方法

    这篇文章主要介绍了vue多页面项目中路由如何使用history模式,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • vue将文件/图片批量打包下载zip的教程

    vue将文件/图片批量打包下载zip的教程

    这篇文章主要介绍了vue将文件/图片批量打包下载zip的教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • vue+el-upload实现多文件动态上传

    vue+el-upload实现多文件动态上传

    这篇文章主要为大家详细介绍了vue+el-upload实现多文件动态上传,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • vue基于v-charts封装双向条形图的实现代码

    vue基于v-charts封装双向条形图的实现代码

    这篇文章主要介绍了vue基于v-charts封装双向条形图的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • vue+animation动画实现跑马灯效果

    vue+animation动画实现跑马灯效果

    这篇文章主要为大家详细介绍了vue+animation动画实现跑马灯效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Vue中图片上传组件封装-antd的a-upload二次封装的实例

    Vue中图片上传组件封装-antd的a-upload二次封装的实例

    这篇文章主要介绍了Vue中图片上传组件封装-antd的a-upload二次封装的实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • 一步步详细讲解vue3配置ESLint

    一步步详细讲解vue3配置ESLint

    ESLint主要用于代码规范、统一代码风格,下面这篇文章主要给大家介绍了关于vue3配置ESLint的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • Vue冷门技巧递归组件实践示例详解

    Vue冷门技巧递归组件实践示例详解

    这篇文章主要为大家介绍了Vue冷门技巧递归组件实践示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • vue的全局提示框组件实例代码

    vue的全局提示框组件实例代码

    这篇文章主要介绍了vue的全局提示框组件实例代码,需要的朋友可以参考下
    2018-02-02

最新评论