财联社10月30日讯(编辑 夏军雄)据消息人士称,Meta计划于周四发行至少250亿美元的投资级债券。在科技企业纷纷加大人工智能(AI)基础设施投资之...
2025-10-31 0
场景:在前端开发过程中,经常会遇到加载静态资源(图片)时,出现加载失败。
原因:大部分是因为路径问题
<template><div class="avatar"></div></template> #技术分享<script lang="ts" setup></script><style lang="less" scoped>.avatar { width: 80px; height: 80px; background-repeat: no-repeat; background-size: contain; background-position: center; background-image: url('@/assets/img/avatar.png'); } </style>上述代码是能够正确加载图片的。
<template><t-image src="@/assets/img/avatar.png"></t-image></template>上述代码是不能够正确加载图片的。
<template><t-image :src="avatarImg"></t-image></template><script lang="Ts" setup>import avatarImg from '@/assets/img/avatar.png'; </script>先把图片在 JavaScript 中加载到变量中,在通过变量设置到 html 中。
但这种方法的缺点在于:一 个页面的静态资源图片少的话,问题不大。一旦很多,就需要设置很多变量,不方便维护。
问题关键在于:图片路径不正确,那是否可以封装个方法做好路径的转换不就解决问题了吗
import { APP } from 'vue';const getImgSrc = (imagePath: string) => { return new URL(`../${imagePath}`, import.meta.url).href; };export const globalFunc = { install: (app: App) => { app.config.globalProperties.$getImgSrc = getImgSrc; } }关键点:
使用:
<template><t-image :src="$getImgSrc('@/assets/img/avatar.png')"></t-image></template>常量也是在前端开发中也是经常会遇到的,需要将魔法变量转化成对应的意思。
参照上一个方法的封装原则,这里也是封装成一个全局函数,比较简单,直接看代码。
import { APP } from 'vue';const translate = (values: string, type: string) => { if (!values) { return ''; } const constant = constantLabelMap[type];const valKeys = values.split(',');const valuesText: Array<string> = []; valKeys.forEach((index) => { if (constant[index]) { valuesText.push(t(constant[index])); } }); return valuesText.length > 0 ? valuesText.join(',') : values; };export const globalFunc = { install: (app: App) => { app.config.globalProperties.$constant = translate; } }关键点:
使用:
<template><div>{{ $constant('success', 'status') }}</div></template>这里主要是处理数值千分位划分,比较简单,贴代码
import { APP } from 'vue';const nf = (val: number, max?: number, min?: number, rate?: number) => { let value = val; if (rate) { value = val / rate; } const formatter = new Intl.NumberFormat('en-US', { minimumFractionDigits: min, maximumFractionDigits: max, }); return formatter.format(value); };export const globalFunc = { install: (app: App) => { app.config.globalProperties.$nf = nf; } }关键点:
相关文章
财联社10月30日讯(编辑 夏军雄)据消息人士称,Meta计划于周四发行至少250亿美元的投资级债券。在科技企业纷纷加大人工智能(AI)基础设施投资之...
2025-10-31 0
一、图片篇场景:在前端开发过程中,经常会遇到加载静态资源(图片)时,出现加载失败。原因:大部分是因为路径问题css 使用静态资源<templat...
2025-10-31 0
证券之星消息,胜宏科技(300476 10月30日在投资者关系平台上答复投资者关心的问题。投资者提问:公司与英伟达的合作已从供应商升级为技术共研方,除...
2025-10-31 0
iPhone18增加星链功能?苹果看样子是要联手马斯克的星链了,最快可能会出现在iPhone18上面。 苹果的创新思路,从过去的挤牙膏,现在成了东拼西...
2025-10-31 0
2025年10月28日,当地时间周二,AI圈最受关注的一对伙伴——微软与OpenAI,正式对外宣布了合作模式的重大调整。这则消息看似只是常规的商业协议...
2025-10-31 0
根据科技媒体Huawei Central消息,华为正为HarmonyOS 6.1版本筹备天气App的重要更新,新功能细节已通过测试版应用更新泄露。目前...
2025-10-31 0
本篇文章给大家谈谈万能透视看牌器下载,以及看牌器 透视插件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 世博会日本馆 1、上海世博会的日本馆...
2025-10-31 0
今天给各位分享南通天天长牌开挂的知识,其中也会对南通长牌天成怎么算?进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!影视资源开挂...
2025-10-31 0
发表评论