Vue 中 SVG 学习

W3C SVG教程:http://www.w3school.com.cn/svg/index.asp
W3C XLink教程:http://www.w3school.com.cn/xlink/index.asp
SVG手册:http://know.webhek.com/svg/svg-home.html

 

1. 如何在vue项目中使用iconfont:https://www.jianshu.com/p/0cf10d836991

 

2. webpack 插件 svg-sprite-loader 详解:https://cisy.me/webpack-svg-sprite/

svg-sprite-loader 用来根据导入的 svg 文件自动生成 symbol 标签

但是,自动导入的一段代码让我很费解:

import Vue from 'vue'
import SvgIcon from '@/components/SvgIcon'// svg组件

// register globally
Vue.component('svg-icon', SvgIcon)

const requireAll = requireContext => requireContext.keys().map(requireContext) //不理解!
const req = require.context('./svg', false, /\.svg$/)
requireAll(req)

我又参考了另一篇文章:

3. 带你优雅的使用 icon: http://www.mamicode.com/info-detail-2111873.html

这篇文章讲述了 svg 的演进史,对于使用 svg-sprite-loader 的起因、经过,思路更加清晰,其中有几点可以注意一下:

使用 iconfont 的 js 的缺点:不直观不能按需加载自定义性差添加不友善

svg-sprite-loader 可以将多个 svg 打包成 svg-sprite,即生成多个 symbol

svg-sprite-loader 只会获取 svg 中path 的内容,其他信息一概不取 

 

到此为止,我对 Vue 中使用 svg 已经很清楚了,但是唯独对自动导入这段代码,还是费解,直到我看到这篇文章:

4. vue 之 require.context:https://blog.csdn.net/viewyu12345/article/details/83012970

摘出一些重点:

require.context上下文导出(返回)一个(require)函数,该函数接受一个参数 req

真相大白:

webpackContext.keys() 返回所有上下文的请求,通过遍历每个请求(req),webpackContext 接受参数 req,调用webpackContextResolve 解析得到模块 id,最后通过 __webpack_require__ 导入

__webpack_require__ 这个函数,它的功能是根据传入的模块 id,返回模块 export 的内容

 

占坑

webpack:https://webpack.docschina.org/guides/dependency-management/

拓展、延伸:https://juejin.im/post/5ab8bcdb6fb9a028b77acdbd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值