为了账号安全,请及时绑定邮箱和手机立即绑定

跪求vue中使用use标签引入svg的正确方法?svg-sprite-loader这个东西的作用

跪求vue中使用use标签引入svg的正确方法?svg-sprite-loader这个东西的作用

慕田峪4524236 2019-03-14 18:15:21
我希望在项目中可以这样引入svg: <svg>    <use :xlink:href="require('./xxx/xxx/xxx.svg')"></use> </svg>  但是这么做就会报一个地址的错误,然后我装了svg-sprite-loader,在webpack.base.conf.js中添加了 {    test: /\.svg$/,    use: {      loader: 'svg-sprite-loader',      query: {        name: '[name]_[hash:6]',        prefixize: true      }    }  },  但是发现依旧不行 (webpack的配置是vue-cli生成的), 所以跪求大神叫我一下我应该这么做。我也很绝望。
查看完整描述

3 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

先在js中引用,并加在data中


var svgUrl= require('./xxx/xxx/xxx.svg')

{

    data() {

        return {

            svgUrl

        }

    }

}

然后在模板中使用


 <svg>

    <use :xlink:href="svgUrl"></use>

 </svg>


查看完整回答
反对 回复 2019-03-21
?
PIPIONE

TA贡献1829条经验 获得超9个赞

https://img1.sycdn.imooc.com//5c935b810001e78608000215.jpg

打印出来是这个

查看完整回答
反对 回复 2019-03-21
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

你如果确实是按照原生的写法引入svg的化,可以专门维护一个svg symbol标签的vue组件,然后在入口处添加到页面上,比如main.vue中,只要把svg标签扔到了页面中就可以使用symbol 了,如果还嫌写 <svg> <use xxx> 麻烦的话可以把这个也写成一个动态组件,图在下面

https://img1.sycdn.imooc.com//5c935b91000105f508000395.jpg

https://img1.sycdn.imooc.com//5c935b9200017c2a08000633.jpg

https://img1.sycdn.imooc.com//5c935b9400018ed407350219.jpg

查看完整回答
反对 回复 2019-03-21
  • 3 回答
  • 0 关注
  • 5390 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号