码迷,mamicode.com
首页 > 其他好文 > 详细

在Vue中使用svg图标即封装自定义svg-icon标签

时间:2020-06-29 15:33:21      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:src   表达   set   rom   uil   targe   vue 使用   内容   图标   

参考 Vue项目中使用svg图标   这篇软文质量不错, 依葫芦画瓢,也跑通了

1.慢慢在理解其中包含的知识

2. 把自己理解换一种方式表达一下

 我们想在vue页面使用svg图标,例如

技术图片

<template>
  <div>
    <h1>Svg实践,在页面中使用</h1>
    <svg-icon icon-class="add"></svg-icon>
    <svg-icon icon-class="auto"></svg-icon>
  </div>
</template>

<script>
export default {
  props: {},
  components: {},
  data() {
    return {};
  },
  computed: {},
  created() {},
  mounted() {},
  watch: {},
  methods: {}
};
</script>

参考上面的文章

以上代码是svg的原生用法(正确性未验证)

 

1. src/icons 目录, 导入 svg 资源文件

2. npm install svg-sprite-loader --save-dev =>package.json

3. 配置webpack.base.conf.js(build文件夹中)
//设置Webpack 用 svg-sprite-loader 加载, src/icons 目录的内容,
换一种方式:
1). 在 rules 下增加

{
    test: /\.svg$/,
    loader: "svg-sprite-loader",
    include: [resolve("src/icons")],
    options: {
        symbolId: "icon-[name]"
    }
},    

//实际效果是,上面配置后webpack会加载src/icons下的index.js

2). webpack.base.conf.js 原生的 loader: ‘url-loader‘,中去掉svg,就不再额外添加
指令: exclude:[resolve(src/icons)] ,

如下:

{
    test: /\.(png|jpe?g|gif)(\?.*)?$/,
    loader: url-loader,
    options: {
        limit: 10000,
        name: utils.assetsPath(img/[name].[hash:7].[ext])
    }
},

4. 自定义svg组件封装svg功能

基础核心知识
src\icons\index.js 中
import SvgIcon from ‘@/components/SvgIcon‘ 的加载行为
加载 src\components\SvgIcon\index.vue

<svg :class="svgClass" aria-hidden="true" v-on="$listeners">

在Vue中使用svg图标即封装自定义svg-icon标签
如在 SvgDemo.vue 使用如下标签

<template>
    <div>
        <h1>Svg实践,在页面中使用</h1>
        <svg-icon icon-class="add"></svg-icon>
        <svg-icon icon-class="auto"></svg-icon>
    </div>
</template>                

 

在Vue中使用svg图标即封装自定义svg-icon标签

标签:src   表达   set   rom   uil   targe   vue 使用   内容   图标   

原文地址:https://www.cnblogs.com/zhuji/p/13135015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!