vue:用一个文件配置全局常量/方法和全局组件

本文介绍了如何在Vue项目中创建一个`global.vue`文件,用于集中管理全局常量、函数及组件。首先,在`global.vue`中定义并导出全局变量和组件。然后,在`main.js`中引入`global.vue`,通过`Vue.prototype`挂载全局变量,并使用`Vue.use()`注册全局组件。最后,展示了在组件中如何便捷地调用这些全局资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求

为了便于vue中全局常量、全局组件的管理,需将它们引入同一个文件并在main.js中注册:
项目文件结构

代码

  1. 创建一个用于定义全局常量/方法、引用全局组件的“global.vue”,并在其中暴露全局常量/方法、全局组件:

global.vue

// global.vue
<script>
// 全局常量定义
const cityName = "南京"; // 城市名称

// 全局函数定义
const testFunc = (message) => console.log(message);

// 全局组件引入
import component_title from "./components/component_title/component_title.vue";

export default {
  cityName, // 暴露全局常量
  testFunc, // 暴露全局函数
  component_title, // 暴露全局组件
  install(Vue) {
    // 全局组件注册方法
    Vue.component("component-title", component_title); // 标题组件
  },
};
</script>

  1. 在“main.js” (需要确保index.html中引入了main.js) 中挂载全局常量/函数,注册全局组件:

main.js

// main.js
import global from "./global.vue";

// 将全局常量/函数挂载到Vue实例上,名称可自定义
Vue.prototype.GLOBAL = global;

// 注册全局组件
Vue.use(global);

  1. 在组件中使用全局常量/函数/组件:
// test.vue
<div>
  // 控制台输出"南京"
  {{ this.GLOBAL.testFunc(this.GLOBAL.cityName) }}
  // 可直接使用全局组件
  <component-title />
</div>

参考文档

[1] vue使用全局变量、全局函数
[2] vue定义全局变量、全局方法

### Vue 全局样式的配置方法 为了在 Vue 项目中应用全局样式,可以采用多种方式来确保这些样式能够被整个应用程序访问并生效。 #### 使用 `style-resources-loader` 插件加载资源文件 通过安装 `vue-cli-plugin-style-resources-loader` 可以方便地引入全局使用的变量或者混入其他资源到每一个组件的 `<style>` 块里。具体操作如下: - 安装插件命令为 `$ npm i vue-cli-plugin-style-resources-loader`[^1] 接着可以在项目的根目录下的 `vue.config.js` 文件中添加相应的配置项以便于自动导入所需的 SCSS 或者 LESS 等预处理器编写的公共样式表单: ```javascript module.exports = { css: { loaderOptions: { scss: { additionalData: ` @import "@/assets/styles/variables.scss"; @import "@/assets/styles/mixins.scss"; `, }, } } }; ``` 这段代码会使得所有的 `.scss` 文件都能直接使用位于 `/src/assets/styles/` 路径中的两个文件所定义的颜色、尺寸等常量或是混合宏函数而无需单独再做额外声明。 #### 创建独立的 CSS/SASS/Less 文件作为入口点 另一种做法是在 src 目录下创建一个新的 .css/.scss/.less 文件用于集中管理那些希望在整个 app 中都可用的选择器规则集;之后只需在这个新建文件内部编写相应的内容即可。最后记得修改 main.js 来显式引用该文件从而完成注册过程: ```javascript // 导入全局样式文件 import &#39;@/styles/global.css&#39;; ``` 这种方式简单明了,适合小型项目快速上手[^3]。 #### 注意事项 当处理多个组件之间的样式关系时需要注意避免不必要的覆盖现象发生。即使设置了所谓的“全局”级别样式也建议遵循一定的命名约定比如 BEM 方法论(BLOCK__ELEMENT--MODIFIER),以此减少意外情况的发生几率[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值