Solid 与 React 有什么不同
Solid 的 JSX 会把属性直接映射到 DOM,所以 stroke-width、class 等 SVG 属性会保持文件中的原样,不需要像 React 那样改成驼峰式或 className。
Solid 的 props 是响应式 getter,解构会破坏响应性。开启 size 属性时,转换器会用 splitProps 把 size 与其余 props 分开,再把其余部分展开到 <svg> 上,确保所有值保持响应式。
生成的 TypeScript 类型
props 的类型是从 solid-js 导入的 JSX.SvgSVGAttributes<SVGSVGElement>,覆盖所有 SVG 属性和事件处理器。开启 size 选项后,类型会扩展为再加上 { size?: number | string }。
在 SolidStart 中使用组件
快速上手:
- 把输出保存为 src/components 目录中的 IconName.tsx。
- 导入后渲染 <IconName size={18} class="icon" />。
- 使用 currentColor 让图标继承周围文字的颜色。
- ref 通过普通的 ref 属性传递,Solid 中不需要 forwardRef。