美文网首页程序员Web 前端开发 React.js
React 下最轻量级的 Vectorized Icon Com

React 下最轻量级的 Vectorized Icon Com

作者: jacobbubu | 来源:发表于2016-04-13 19:46 被阅读228次

    以下方法来自 http://jxnblk.com/react-geomicons/

    鉴于 React 构造组件的方便性,实现一个基于 SVG 的 Icon Component 只要下面区区几行:

    const paths = {
      bookmark: 'M6 2 L26 2 L26 30 L16 24 L6 30 Z  ',
      calendar: 'M2 4 L6 4 L6 2 A2 2 0 0 1 10 2 L10 4 L22 4 L22 2 A2 2 0 0 1 26 2 L26 4 L30 4 L30 10 L2 10 M2 12 L30 12 L30 30 L2 30  ',
      camera: 'M0 6 L8 6 L10 2 L22 2 L24 6 L32 6 L32 28 L0 28 z M9 17 A7 7 0 0 0 23 17 A7 7 0 0 0 9 17  ',
      // ... 根据你自己的需要添加 SVG path
    }
    
    const Icon = ({ name, ...props }) => {
      const path = paths[name] || false
      return (
        <svg
          {...props}
          viewBox="0 0 32 32"
        >
          <path d={path} />
        </svg>
      )
    }
    
    Icon.defaultProps = {
      name: 'warning',
      width: '1em',
      height: '1em',
      fill: 'black',
    }
    

    用法就是:

    React.render(<Icon name='bookmark' />, document.querySelector('#container'))
    

    你不需要引入像 Font-Awesome 这样完整的 Icon Font/Set 到你的项目中,只需要放入你自己需要的 Icon Path。还有更轻更快速的方法吗?

    相关文章

      网友评论

        本文标题:React 下最轻量级的 Vectorized Icon Com

        本文链接:https://www.haomeiwen.com/subject/rzfglttx.html