当前位置:首页 » 《关于电脑》 » 正文

前端 | 介绍 Vue3 中使用全局属性的3种方法 | Vue3

9 人参与  2024年04月05日 08:51  分类 : 《关于电脑》  评论

点击全文阅读


前端 | 介绍 Vue3 中使用全局属性的3种方法 | Vue3

app.config.globalProperties

一个用于注册能够被应用内所有组件实例访问到的全局属性的对象。这是对 Vue 2 中 Vue.prototype 使用方式的一种替代,如果全局属性与组件自己的属性冲突,自己属性优先级更高。

与任何全局的东西一样,应该谨慎使用。

在 main.ts 中定义

app.config.globalProperties.$globalMsg = 'hello'

在组件组件中使用

<div>{{ $globalMsg }}</div>

应用层 Provide

父组件给后代组件透传属性时,使用依赖注入provide&inject,除此之外,它还可以用于在整个应用层面提供依赖。在main.ts中提供

app.provide('$globalName', 'mocha-vue3-admin')

在组件中注入使用

const globalName = inject('$globalName')

provide和config.globalProperties在应用层面提供全局属性,感觉差不太多,反正官方都不太推荐使用全局性的东西,所以具体情况具体分析吧。

个人看法是:config.globalProperties用着更简单,provide更适合开发组件/插件使用。

Vite define

如果使用Vite的话,define也可以定义全局常量, 它和上面2位的区别还是比较大。

在vite.config.ts定义

 define: {       __APP_NAME__: JSON.stringify('mocha-vue3-admin')  },

在组件中使用

const globalName = __APP_NAME__

获取package.json配置

define 是 Vite 配置选项,通过它我们可以获取package.json 的信息,并在组件内显示,比如获取项目依赖信息。

vite.config.ts 配置文件

...import pkg from './package.json'import dayjs from 'dayjs'const { dependencies, devDependencies, name, version } = pkgconst __APP_INFO__ = {  pkg: { dependencies, devDependencies, name, version },  lastBuildTime: dayjs().format('YYYY-MM-DD HH:mm:ss')}export default ({ mode }) => {      return defineConfig({            ...            define: {                  __APP_INFO__: JSON.stringify(__APP_INFO__),                  __APP_NAME__: JSON.stringify('mocha-vue3-admin')           },            ...     })}

在组件内使用

<script setup lang="ts">const { pkg, lastBuildTime } = __APP_INFO__const { dependencies, devDependencies } = pkg</script>

使用ts需要在 vite-env.d.ts 添加类型声明,否则组件代码会爆红哦~

declare const __APP_INFO__: {  pkg: {    dependencies: {}    devDependencies: {}  }  lastBuildTime: string}

有以上3种方式,基本就够用了吧!


点击全文阅读


本文链接:http://zhangshiyu.com/post/90645.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 全文黑道枭宠夫人跪舔白眼狼(邢枭白绮罗)列表_全文黑道枭宠夫人跪舔白眼狼
  • 末世娇女要吃饱,大佬前任求抱抱林麦麦沈南知后续(末世娇女要吃饱,大佬前任求抱抱)(林麦麦沈南知)完整章节列表_笔趣阁
  • 热文推荐小流星苏承安附加(小流星苏承安)崽崽许愿超灵验,就是有点缺心眼:结局+番外免费品鉴
  • 老婆拿我给小姐妹玩恋爱盲盒,我上瘾了(方沁雪姜知许)_老婆拿我给小姐妹玩恋爱盲盒,我上瘾了(方沁雪姜知许)
  • 高温天,我妈把我和女儿锁进车里番茄热门_囡囡孙子沈安精校文本_小说后续在线阅读_无删减免费完结_
  • 何似星辰非昨夜附加(何似星辰非昨夜)(沈柠栀)全本浏览阅读连载中
  • 异食癖勇闯恐怖旅馆(郭文静俞沐泽)_异食癖勇闯恐怖旅馆
  • 全文七年后重逢,高岭之花跪求当情夫精选作品之一(倪雾裴淮聿)列表_全文七年后重逢,高岭之花跪求当情夫精选作品之一
  • 完结文未婚夫和室友在一起后,我解放了列表_完结文未婚夫和室友在一起后,我解放了(林知夏易少轩)
  • 完结文在阿尔卑斯列表_完结文在阿尔卑斯(沈家,阿叙,包里)
  • 疯婆子邻居要我把女儿嫁给她三十岁的儿子(母亲女儿),疯婆子邻居要我把女儿嫁给她三十岁的儿子
  • 饮鸩斩前缘,清冷世子红眼求垂爱小说(顾怀宁沈敛)TXT无套路在线+无广告结局

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1