htc 7ca38fdcbb 善行少年PC端首次提交(基础版) před 2 týdny
..
build 7ca38fdcbb 善行少年PC端首次提交(基础版) před 2 týdny
README.md 7ca38fdcbb 善行少年PC端首次提交(基础版) před 2 týdny
demo.html 7ca38fdcbb 善行少年PC端首次提交(基础版) před 2 týdny
icon.jsx 7ca38fdcbb 善行少年PC端首次提交(基础版) před 2 týdny
main.jsx 7ca38fdcbb 善行少年PC端首次提交(基础版) před 2 týdny
svg-to-icon-component-runtime-generator.js 7ca38fdcbb 善行少年PC端首次提交(基础版) před 2 týdny
webpack.config.js 7ca38fdcbb 善行少年PC端首次提交(基础版) před 2 týdny

README.md

Custom runtime generating example

Runtime code generated by loader could be overridden by providing custom generator via runtimeGenerator option. For example you can return React component preconfigured with imported symbol data instead of default symbol instance.

Demo

Config

Input

This import:

import TwitterIcon from '../assets/twitter.svg';

Will be generated to:

import React from 'react';
import SpriteSymbol from 'svg-sprite-loader/runtime/symbol';
import sprite from 'svg-sprite-loader/runtime/browser-sprite';
import SpriteSymbolComponent from './icon.jsx';

const symbol = new SpriteSymbol({ /* symbol data */ });
sprite.add(symbol);

export default class TwitterIcon extends React.Component {
  render() {
    return <SpriteSymbolComponent glyph="${symbol.id}" {...this.props} />;
  }
}

So when you import SVG, actually React component returns with configured glyph:

import TwitterIcon from '../assets/twitter.svg';

render(
  <div>
    <TwitterIcon width="100" />
    <TwitterIcon fill="red" style={{width: 300}} />
    <TwitterIcon fill="blue" style={{width: 600}} />
  </div>,
  document.querySelector('.app')
);

Output