vue项目全局挂载函数 — webpack.ProvidePlugin

ProvidePlugin:(官方文档解释)

自动加载模块,而不必在任何地方 import 或 require 它们。

理解:在项目中,存在业务逻辑相同的功能,为了减少代码的书写,我们一般会选择抽离出复用的代码写在一个 .js 文件中,然后将其向外暴露出去;使用的时候通过 import 导入。

假如项目中有 50+ 个单文件组件( .vue )且每个组件中都要使用这个模块( .js )中向外暴露的方法,那我们是不是需要 50+ 个 import 语句。为了避免这种情况的发生,所以想到把该方法变成全局的。把某个方法变成全局方法有多种方式,此文章仅记录通过 webpack.ProvidePlugin 进行挂载!!!

先附上官方文档

项目中应用

        首先,创建一个js文件 (文件在项目中的路径 src/utils/index.js)并把需要向外暴露的方法、变量等 export 出去。

//src/utils/index.js
import axios from "axios";
function add() {
  console.log("add");
}
function add2() {
  console.log("add2");
}
export { add, add2, axios };

        接着,开始配置  vue.config.js  文件 。

const { defineConfig } = require("@vue/cli-service");
const webpack = require("webpack");

const path = require("path");
module.exports = defineConfig({
  productionSourceMap: false,
  lintOnSave: false,
  configureWebpack: {
    plugins: [
       //挂载全局方法
      new webpack.ProvidePlugin({
        FF: [path.resolve(__dirname, "src/utils/index")],
      }),
    ],
  },
});

         最后,在该使用它的地方开始使用。(我是在 About.vue 中进行使用的,只进行了打印)

<template>
  <div class="about">
    <h1>This is an about page</h1>
  </div>
</template>
<script setup>
import { onMounted } from "vue";
onMounted(() => {
  console.log(FF);
});
</script>

        控制台打印结果:【可以看出,FF 变量存储的就是 index.js 模块中向外暴露的东西,如果我们想使用 add 方法,是不是可以直接 FF.add()

那稍微的改动一下 vue.config.js 文件,index.js 文件和 About.vue 文件中内容都不变!!!

再来看下控制台输出内容:

修改 vue.config.js 文件内容和 index.js 文件中的内容再看控制台打印内容

控制台结果:

 只修改 index.js 文件,保持 vue.config.js 文件不变           

 

 输出结果:

 OK!到这就结束了,可以自己手动测试一下。谨记,每次修改完 vue.config.js 文件要重启项目!!!

相关推荐

  1. vue3挂载axios挂载全局方法

    2024-04-22 18:50:02       16 阅读
  2. vue3挂载全局方法

    2024-04-22 18:50:02       40 阅读
  3. vue2挂载全局方法/组件

    2024-04-22 18:50:02       32 阅读
  4. Vue/cli项目全局css使用

    2024-04-22 18:50:02       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-22 18:50:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-22 18:50:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-22 18:50:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-22 18:50:02       20 阅读

热门阅读

  1. HarmonyOS之http请求数据返回值为字符串存储渲染

    2024-04-22 18:50:02       17 阅读
  2. 基于AI的pdf转word方法

    2024-04-22 18:50:02       19 阅读
  3. html中字体加粗

    2024-04-22 18:50:02       16 阅读
  4. 用Python设计一个计算器

    2024-04-22 18:50:02       13 阅读
  5. NumPy:深度学习领域的强大工具

    2024-04-22 18:50:02       14 阅读
  6. Android去除折叠屏两边的黑边,默认全屏显示

    2024-04-22 18:50:02       32 阅读
  7. 【Docker】安装Redis、Nginx、MongoDb、Jenkins

    2024-04-22 18:50:02       13 阅读
  8. Copula(2)

    Copula(2)

    2024-04-22 18:50:02      11 阅读
  9. 3d世界坐标转换到某个二维平面。

    2024-04-22 18:50:02       12 阅读
  10. 百钱买百鸡

    2024-04-22 18:50:02       14 阅读