更新记录

1.0.8(2024-10-14)

  • 修复x-ios打包错误

1.0.7(2024-09-27)

  • 兼容路径

1.0.6(2024-08-03)

  • 修复x正式打包无法加载static下svg文件
查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.7.0,Android:5.0,iOS:11,HarmonyNext:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

UTS环境兼容性

uni-app uni-app x

sn-uts-svg

sn-uts-svg组件是uts组件,实现了svg组件

注意

  • sn-uts-svg支持app-nvue、uni-app x的uvue
  • App-Android平台要求Android5(API Leavel 21)及以上系统
  • App-iOS平台要求iOS11及以上版本系统
  • 关于uvue使用打包编译报错,可能是编译问题,请使用3.94或最新hbx

属性说明

属性 类型 默认值 说明
src string '' svg文件地址,目前仅支持本地路径

代码示例

  • nvue
<template>
    <view style="align-items: center; flex: 1">
        <sn-uts-svg style="width: 100rpx; height: 100rpx" src="/static/svg/save-one.svg" @click="test" />
        <sn-uts-svg style="width: 100rpx; height: 100rpx; margin-top: 20rpx" src="/static/svg/test.svg" />
        <sn-uts-svg style="width: 100rpx; height: 100rpx; margin-top: 20rpx" :src="svgSrc" />
        <view style="flex: 1; width: 750rpx; margin-top: 20rpx">
            <button type="default" @click="change">改变svg</button>
        </view>
    </view>
</template>

<script>
export default {
    data() {
        return {
            svgSrc: '/static/svg/movie.svg',
            fillColor: '#f8f500'
        };
    },
    computed: {
        source1() {
            return `<svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
              <path
                d="M24 6V42C17 42 11.7985 32.8391 11.7985 32.8391H6C4.89543 32.8391 4 31.9437 4 30.8391V17.0108C4 15.9062 4.89543 15.0108 6 15.0108H11.7985C11.7985 15.0108 17 6 24 6Z"
                fill="${this.fillColor}" stroke="#333" stroke-width="4" stroke-linejoin="round" />
              <path d="M32 24H44" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" />
              <path d="M38 18V30" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" />
            </svg>
            `.replace(/[\t\r\n]/g, '');
        }
    },
    methods: {
        test() {
            uni.showToast({
                title: 'click'
            });
        },
        change() {
            this.fillColor = 'red';
            this.svgSrc = this.source1;
        }
    }
};
</script>

<style></style>
  • uvue
<template>
    <view style="align-items: center; flex: 1">
        <sn-uts-svg style="width: 100rpx; height: 100rpx" src="/static/svg/save-one.svg" @click="test" />
        <sn-uts-svg style="width: 100rpx; height: 100rpx; margin-top: 20rpx" src="/static/svg/test.svg" />
        <sn-uts-svg style="width: 100rpx; height: 100rpx; margin-top: 20rpx" :src="svgSrc" />
        <view style="flex: 1; width: 750rpx; margin-top: 20rpx">
            <button type="default" @click="change">改变svg</button>
        </view>
    </view>
</template>

<script>
export default {
    data() {
        return {
            svgSrc: '/static/svg/movie.svg',
            fillColor: '#f8f500'
        };
    },
    computed: {
        source1(): string {
        return `<svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
      <path
        d="M24 6V42C17 42 11.7985 32.8391 11.7985 32.8391H6C4.89543 32.8391 4 31.9437 4 30.8391V17.0108C4 15.9062 4.89543 15.0108 6 15.0108H11.7985C11.7985 15.0108 17 6 24 6Z"
        fill="${this.fillColor}" stroke="#333" stroke-width="4" stroke-linejoin="round" />
      <path d="M32 24H44" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" />
      <path d="M38 18V30" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" />
    </svg>`
            .replace(/[\t\r\n]/g, '')
            .trim();
    }
    },
    methods: {
        test() {
            uni.showToast({
                title: 'click'
            });
        },
        change() {
            this.fillColor = 'red';
            this.svgSrc = this.source1;
        }
    }
};
</script>

<style></style>

svg资源推荐

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问