• vue3.0+ts+vite+svg


    使用vite搭建的vue3.0 ts项目中使用svg图标方法:
    1,安装 vite-plugin-svg-icons

    npm i vite-plugin-svg-icons -D

    2,vite.config.ts 中的配置插件

    import { defineConfig } from 'vite'
    import vue from '@vitejs/plugin-vue'
    import viteSvgIcons from 'vite-plugin-svg-icons';
    import path from 'path'; 
    export default defineConfig({
      plugins: [
          vue(),
       
        /**
         *  把src/icons 下的所有svg 自动加载到body下,供组件使用
         */
         viteSvgIcons({
            // 指定需要缓存的图标文件夹,地址可改
            iconDirs: [path.resolve(process.cwd(), 'src/assets/svg')],
            // 指定symbolId格式
            symbolId: 'icon-[dir]-[name]',
          }),
        ]
    })

    3,在 src/main.ts 内引入注册脚本

    import 'virtual:svg-icons-register';

    4,封装svg-icon组件:/src/components/SvgIcon.vue

    <template>
      <svg aria-hidden="true">
        <use :xlink:href="symbolId" :fill="color" />
      </svg>
    </template>
    
    <script>
      import { defineComponent, computed } from 'vue';
    
      export default defineComponent({
        name: 'SvgIcon',
        props: {
          prefix: {
            type: String,
            default: 'icon',
          },
          name: {
            type: String,
            required: true,
          },
          color: {
            type: String,
            default: '#333',
          },
        },
        setup(props) {
          const symbolId = computed(() => `#${props.prefix}-${props.name}`);
          return { symbolId };
        },
      });
    </script>

    5,使用 ,如app组件中:/src/App.vue

    <template>
      <div>
        <SvgIcon name="icon1"></SvgIcon>
        <SvgIcon name="icon2"></SvgIcon>
        <SvgIcon name="icon3"></SvgIcon>
        <SvgIcon name="dir-icon1"></SvgIcon>
      </div>
    </template>
    
    <script>
      import { defineComponent, computed } from 'vue';
    
      import SvgIcon from './components/SvgIcon.vue';
      export default defineComponent({
        name: 'App',
        components: { SvgIcon },
      });
    </script>

    注:icon1,icon2 等是放在src/assets/svg文件夹下的icon1.svg ,icon2.svg 文件。

    问题:想实现一张大的svg图全屏的效果,尺寸却是很小,无论怎么控制width,也全屏不了

     待后续解决之后补充。

    原文链接:https://github.com/anncwb/vite-plugin-svg-icons/blob/main/README.zh_CN.md

     
  • 相关阅读:
    3、字节流输入输出实现文件的copy
    2、io的读出数据到文件中的内容(文件字节输出流)
    1、io的读取文件中的内容(文件字节输入流)
    10 linux中运行jar
    Linux 部署 iSCSI 客户端配置(Linux)
    Linux 部署 iSCSI 服务端
    Linux上使用iSCSI概述
    SSH实现免密登陆
    源码安装Python3
    Windows(受控主机)上配置
  • 原文地址:https://www.cnblogs.com/nanamiao/p/15308432.html
Copyright © 2020-2023  润新知