svg图标封装--基于vue2适配uniapp全端

第一步:新建svg目录

在static目录下新建svg目录,后将所有svg图标都放到此文件夹

第二步:封装注册全局组件

(注意:在根目录下新建components文件夹)

代码实现:

html 复制代码
<template>
	<!-- svg图标 -->
	<image :style="{ height: hCom, width: wCom }" :src="svgCom" />
</template>

<script>
	export default {
		name: 'SvgIcon',
		// 接收参数
		props: {
			// svg图标地址
			src: {
				default: ''
			},
			// 宽
			w: {
				default: '24'
			},
			// 高
			h: {
				default: '24'
			}
		},
		// 计算属性拼接
		computed: {
			svgCom() {
				return `/static/svg/${this.src}.svg`;
			},
			wCom() {
				return `${this.w}px`;
			},
			hCom() {
				return `${this.h}px`;
			}
		},
		data() {
			return {};
		},
		onLoad() {},
		onShow() {},
		methods: {}
	};
</script>

<style lang="scss" scoped></style>

第三步:注册全局文件

在main.js文件下

javascript 复制代码
// svg全局组件
import SvgIcon from "@/components/SvgIcon"
Vue.component('svg-icon', SvgIcon)

第四步:页面使用

注意:已注册为全局组件,可直接在页面中引用(注意,宽高有默认值可以不传参数,xin是文件名)

html 复制代码
<svg-icon :src="'xin'" ></svg-icon>
相关推荐
江城开朗的豌豆几秒前
React key的隐藏技能:key改变时究竟发生了什么?
前端·javascript·react.js
JarvanMo9 分钟前
我用 Ktor 替换了 Retrofit-我的网络代码减少了一半
前端
00后程序员张10 分钟前
iOS 应用上架常见问题与解决方案,多工具组合的实战经验
android·ios·小程序·https·uni-app·iphone·webview
excel13 分钟前
WebGL 入门到进阶全解析:从 Canvas 上下文到 3D 绘制与 WebGL2 新特性
前端
掘金安东尼25 分钟前
用 WebGL + Solid.js 构建混合材质 Shader
前端·webgl
恋猫de小郭29 分钟前
Flutter 小技巧之有趣的 UI 骨架屏框架 skeletonizer
android·前端·flutter
江城开朗的豌豆30 分钟前
玩转React Hooks
前端·javascript·react.js
阿酷tony34 分钟前
教育场景下禁用html5播放器拖动进度条的例子
前端·html·html5·在线教育场景·禁止播放器拖动
前端小巷子1 小时前
Vue3 响应式革命
前端·vue.js·面试
一狐九1 小时前
Flutter如何通过GlobalKey调用组件内的方法
前端·flutter