[开源] react-rough-fiber 一个以手绘风格绘制已有 SVG 库的 React 渲染器 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
bowen7

[开源] react-rough-fiber 一个以手绘风格绘制已有 SVG 库的 React 渲染器

  •  3
     
  •   bowen7 Apr 23, 2023 3082 views
    This topic created in 1100 days ago, the information mentioned may be changed or developed.

    介绍

    使用 react-rough-fiber ,可以非常方便地集成已有的 SVG 库,将它们渲染成手绘风格的图形

    仓库地址

    文档地址

    它的实现原理是 React Renderer + Rough.js 。如果你对实现的过程有兴趣,可以看看我的这篇 博客

    测试用例 涵盖 React 17 & 18

    安装

    npm i react-rough-fiber react-reconciler 

    :如果你使用的是 React 17 ,则需要安装 [email protected]

    使用

    最少只需要加三行代码,就可以将 SVG 渲染成手绘风格,一个最基本的演示

    import { RoughSVG } from 'react-rough-fiber' export default function App() { return ( <RoughSVG> <svg viewBox="0 0 128 128" width="128" height="128"> <circle cx={64} cy={64} r={48} stroke="currentColor" fill="#82ca9d" /> </svg> </RoughSVG> ) } 

    simple demo

    与 SVG Icon / SVG Emoji 集成:

    icon demo

    与图标库 recharts 集成:

    recharts

    可以传入 Roug.js 配置更改手绘风格。配置支持函数类型,可根据不同形状,返回不同配置

    文档中有很多示例:

    FAQ

    Q: 适用于所有 SVG 库吗

    A:并不是。react-rough-fiber 是一个 React renderer ,只适用于用 React 创建的元素。例如 ECharts 等,它们是不基于任何框架的渲染逻辑(比如 ECharts 的 ZRender),所以无法适用 react-rough-fiber

    Q:那也无法适用于本地 /网络 SVG 文件?

    A:可以使用 SVGR 将本地的 SVG 转化为 React Component ;可以使用 react-inlinesvg 加载 SVG 字符串 /网络 SVG 文件,转换为 React Component. 这里有一个简单的 例子

    关于

    react-rough-fiber 基于或灵感来自以下开源项目:

    如果你发现了任何 Bug ,可以在 Issue 提出;有任何讨论、建议,可以在这里或者 Github Discussions 留言

    Supplement 1    Apr 23, 2023
    与图标库 recharts 集成 => 与图表库 recharts 集成
    10 replies    2023-04-28 09:36:59 +08:00
    me221
        1
    me221  
       Apr 23, 2023
    太牛了!
    Alexonx
        2
    Alexonx  
       Apr 23, 2023
    牛批 一直在找一个漂亮的手绘风格的 Icon 库 现在这个渲染器完美解决了
    justin2018
        3
    justin2018  
       Apr 23, 2023
    这个好~ 感谢分享
    K1W1
        4
    K1W1  
       Apr 23, 2023 via iPhone
    牛哇
    BaffinLee
        5
    BaffinLee  
       Apr 23, 2023
    awesome!
    IamJ
      &nbp; 6
    IamJ  
       Apr 23, 2023 via Android
    不错,喜欢这风格
    Cryse
        7
    Cryse  
       Apr 24, 2023
    赞,非常有创意啊
    taylorins
        8
    taylorins  
       Apr 24, 2023
    小前端路过,好漂亮收藏了!
    AlanWang3
        9
    AlanWang3  
       Apr 24, 2023   1
    赞!我之前也用 roughjs 做过类似的东西,不过做的比较粗糙。https://github.com/3Alan/alan-ui
    D2h0VL89HMAU417B
        10
    D2h0VL89HMAU417B  
       Apr 28, 2023
    收藏了
    About     Help     Advertise     Blog     API     FAQ     Solana     3377 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 53ms UTC 12:54 PVG 20:54 LAX 05:54 JFK 08:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86