Vue cli 3.0 使用 svg-symbol
SVG Symbol
SVG 符號引入是現代瀏覽器未來主流的圖示引入方式。其方法是預先載入符號,在合適的地方引入並渲染為向量圖形,特點如下:
- 支援多色圖示,不再受到單色圖示的限制
- 通過一些技巧,支援像字型那樣,通過 font-size、color 來調整樣式
- 支援IE 9+ 及現代瀏覽器
Vue cli 3.0 使用 svg-symbol,整個 www.iconfont.cn 的圖示為你所用,加快開發速度.
Vue 腳手架升級 3.0,專案也隨之升級。
執行
- 裝包
yarn
ornpm i
- 執行
npm run serve
使用
使用 svg-symbol 引入圖示
svg 檔案會匯入到 HTML 檔案中,無需使用兩張 png 切換
./src/main.js
引入 import "./icons";
,在 ./src/icons/svg
資料夾下的 svg 檔案會自動匯入專案
- www.iconfont.cn 下載圖示
- 下載的 svg 圖示放在
./src/icons/svg
資料夾下 - 為了使用當前環境下的顏色,去掉 svg 的 fill 屬性
- 呼叫
<svg-icon icon-name="home" class-name="test"></svg-icon>
./vue.config.js
需要配置 svg-sprite-loader
module.exports = {
chainWebpack: config => {
const svgRule = config.module.rule("svg");
svgRule.uses.clear();
svgRule
.use("svg-sprite-loader")
.loader("svg-sprite-loader")
.options({
symbolId: "icon-[name]",
include: ["./src/icons"]
});
}
};
複製程式碼
關鍵
呼叫當前環境下的顏色,當前環境的顏色改變,圖示顏色也會跟著改變
<style>
.svg-icon {
width: 1em;
height: 1em;
fill: currentColor; // 關鍵
overflow: hidden;
}
</style>
複製程式碼