Vue 项目路由、自定义指令、api方法自动引入资源(require.context使用)

这篇具有很好参考价值的文章主要介绍了Vue 项目路由、自定义指令、api方法自动引入资源(require.context使用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前端项目(当前我以Vue项目为例)当我们把api挂载在main上后

// 将api挂载到vue的原型上
import api from '@/api' 
Vue.prototype.$api=api

在src下会有一个api文件夹,结构如下:

Vue 项目路由、自定义指令、api方法自动引入资源(require.context使用),vue专栏,vue.js,前端,webpack,require.context,api封装,自动导入

通常情况下,api文件夹的index.js文件我们通常是这样来引入的

import * as factoryModel from './modules/basicData/factoryModel'
import * as barCode from './modules/basicData/barCode'
import * as maintenance from './modules/basicData/maintenance'

export default {
  ...factoryModel,
  ...barCode,
  ...maintenance
}

Vue 项目路由、自定义指令、api方法自动引入资源(require.context使用),vue专栏,vue.js,前端,webpack,require.context,api封装,自动导入

使用webpack的require.context来自动引入所有的文件,代码如下:

require.context(directory,useSubdirectories,regExp)

1:directory:哪个文件夹
2:useSubdirectories:是否需要找到子文件夹
3: regExp:正则表达式(一般指文件的后缀)

// 自动加载api
const commonApiObj = {}
let finalObj = {}
const modulesApi = require.context('./modules', true, /\.js$/)
modulesApi.keys().forEach(key => {
  const newKey = key.replace(/(\.\/|\.js)/g, '')
  commonApiObj[newKey] = require(`./modules/${newKey}`)
})
Object.values(commonApiObj).map(x => Object.assign(finalObj, x))
// console.log('最终所有的api', finalObj)
export default {
  ...finalObj,
}

以后modules文件夹下,不管有多少.js文件,都会自动引入其文件的接口方法

以下是单个js文件
Vue 项目路由、自定义指令、api方法自动引入资源(require.context使用),vue专栏,vue.js,前端,webpack,require.context,api封装,自动导入

调用api

//不需要引入,因为自动构建全部挂载在vue原型上,
//barCodePage是文件名:api/modules/barCode.js下的具体方法
async getBarCodePage(){
  const res = awiat this.$api.barCodePage(params)
}

注意事项

接口的命名不能重复。如果项目较大,建议接口命名需要有一个统一的规范来避免出现命名重复的问题

最后,如静态路由、自定义指令都可以使用这个方法自动加载!

相关文章

Vue3 + Vite + Ts开源后台管理系统模板


基于ElementUi或AntdUI再次封装基础组件文档


基于Element-plus再次封装基础组件文档(vue3+ts)文章来源地址https://www.toymoban.com/news/detail-578778.html

到了这里,关于Vue 项目路由、自定义指令、api方法自动引入资源(require.context使用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 项目中使用iframe引入html 解决路由错乱问题以及父子组件传值调用方法

    父组件 子组件: 方法一、通过子组件iframe1向父组件传值,再通过父组件向子组件iframe2传值可达到目的; 注意:模拟时 需要开启服务器,否则会出现跨域问题! 看图你应该就明白了 在项目中使用iframe引入html,引入的html中有路由跳转,当点击html页面中的路由跳转时,浏览器

    2024年02月01日
    浏览(50)
  • webpack安装和使用及超详细配置一个基本vue项目的全部流程(包括路由、less、引入图片渲染)

    webpack官网: https://webpack.docschina.org/concepts/ 一:搭建一个简单的webpack项目 1:准备工作 需要在node环境才能使用webpack,所以需要先安装node,安装node请自行百度。dddd 如图,我这里使用的是14.17.0版本的 2:初始化项目 首先创建一个文件夹,这里我的命名是myWebpack,然后使用n

    2024年02月02日
    浏览(42)
  • Vue2使用element-ui引入自定义主题的方法(使用在线主题生成工具)

    第一步 :按照官方文档使用npm安装element-ui,并完整引入Element-ui npm i element-ui -S  main.js中所有的内容删去,改为 随便写点东西,run一下 成功引入element-ui,但是不喜欢默认的蓝色,看起来很烂大街,想换掉。 第二步 :由于不喜欢默认的蓝色主题,可以使用在线主题生成工具

    2024年02月14日
    浏览(53)
  • vue2 路由进阶,VueCli 自定义创建项目

    1.需求 实现导航高亮效果 如果使用a标签进行跳转的话,需要给当前跳转的导航加样式,同时要移除上一个a标签的样式,太麻烦!!! 2.解决方案 vue-router 提供了一个全局组件 router-link (取代 a 标签) 能跳转 ,配置 to 属性指定路径( 必须 ) 。本质还是 a 标签 , to 无需 # 能高亮

    2024年02月11日
    浏览(46)
  • Vue3+Vite项目引入Element-plus并配置按需自动导入

    我使用的是 pnpm ,并且顺便将 element-plus/icons 一起引入 如果您使用 Volar,请在根目录下 tsconfig.json 中通过 compilerOptions.type 指定全局组件类型 3.1 首先你需要安装 unplugin-vue-components 和 unplugin-auto-import 这两款插件 3.2 然后把下列代码插入到根目录下 vite.config.ts 文件中 Element-lus官

    2024年02月13日
    浏览(65)
  • vue3自动引入插件unplugin-auto-import (vite搭建项目,vue-cli搭建项目两种方式)

    插件地址:https://github.com/antfu/unplugin-auto-import 如果安装了eslint,使用的ref、torefs等报错undefind如下图 需在2个地方vue.config.js ,.eslintrc.js文件做配置 代码:

    2024年02月13日
    浏览(61)
  • 【Vue】Element-UI按需引入项目启动报错解决方法

    原因可能是版本不匹配的原因, Vue-Cli 脚手架的版本跟 element-ui 不一致了,按官网的配置已经不太行了。 报错代码 解决方式 在 babel.config.js 将 es2015 进行替换成 @babel/preset-env 。 启动项目 明显最终的JS文件的大小少了一些。

    2024年02月14日
    浏览(51)
  • vue中内置指令v-model的作用和常见使用方法介绍以及在自定义组件上支持

    一、v-model是什么 v-model是Vue框架的一种内置的API指令,本质是一种语法糖写法,它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。在Vue中,v-model是用于在表单元素和组件之间创建双向数据绑定的指令。它可以简化表单元素的绑定,使得在用户输入

    2024年01月19日
    浏览(49)
  • vue项目中,动态src引入图片,并且js根据文件名后缀,判断文件图片、视频、文档、pdf等类型的方法

    vue根据文件地址,获取后缀,根据后缀判断类型,然后根据类型动态展示不同类型的照片 1、处理后缀,根据后缀判断类型   2、根据返回的结果,直接将文件名命名为返回的结果,比如我有个图片类型的文件,经过上述的方法,返回的是image,那我直接要显示的图片名称就为

    2024年02月06日
    浏览(57)
  • 进阶 vue自定义指令 vue中常用自定义指令以及应用场景,案例书写

    除了 Vue 内置的一系列指令 (比如 v-model 或 v-show) 之外,Vue 还允许你注册自定义的指令 (Custom Directives)。 我们已经介绍了两种在 Vue 中重用代码的方式:组件和组合式函数。组件是主要的构建模块,而组合式函数则侧重于有状态的逻辑。另一方面,自定义指令主要是为了重用涉

    2024年02月15日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包