关于 STDF
STDF 是一个移动端的 UI 组件库,主要用来开发移动端 web 应用。和我之前介绍的很多 Vue 组件库不一样,STDF 是基于近来新晋 js 框架 Svelte 开发的,Svelte 是一个和 Vue / React 类似的 JavaScript 框架,也就是说,这套组件库是专为 Svelte 打造的。
Svelte 简洁语法,主要是让原生 JS 代码有了响应式的能力,而且打包后的 web 应用很小,特别适合开发移动应用,而 Tailwind 又是一个优雅的 CSS 框架,有兴趣的小伙伴可以前去了解学习。STDF 组件库基于 Svelte 和 Tailwind 打造,取其优点,质量很高,本文会向大家介绍它。
为什么叫 STDF
STDF 作为国人开发的组件库,名字虽然简单,但作者也赋予了一些有意思的寓意:
常规解释:S 代表 Simple(简单),T 代表 Thin(轻量),D 代表 Design(设计),F 代表 Fast(快速),STDF 代表一个使用简单、体积轻量、设计友好、开发快速的组件库。
非常规解释:S 和 T 分别代表 Svelte 和 Tailwind,因为 STDF 是基于 Svelte 和 Tailwind 的。DF 可以看成诗人杜甫,不像李白那么浪漫飘逸,他注重的是实用性与易用性,这也是 STDF 的设计理念。希望每一位使用 STDF 的开发者都能写出诗一般的代码。
— 作者关于 STDF 名称的阐述
技术特性
- 简单:使用 Svelte 语法编码简洁迅速。组件源码逻辑清晰、简单易懂、中英注释详细,查看源码、修改逻辑也可以得心应手
- 轻量:源码体积小巧,无三方依赖。基于 Svelte 与 Tailwind 编译产出的代码在体积上也优势明显,这在移动端显得尤为重要
- 设计优雅:针对移动设备优化设计与交互,使用友好、高效、灵活。支持通过简单配置定制颜色系统、圆角风格、亮暗模式等
- 快速:无运行时,无虚拟 DOM,无烦杂的 CSS 代码,状态管理简单轻快。编码过程、编译处理、线上运行都快了起来
组件列表
通用组件(5)
- 按钮 Button
- 底部浮窗 BottomSheet
- 图标 Icon
- 遮罩 Mask
- 弹出层 Popup
布局(4)
- 分割线 Divider
- 网格 Grids
- 占位符 Placeholder
- 骨架屏 Skeleton
导航(6)
- 索引栏 IndexBar
- 导航栏 NavBar
- 分页 Pagination
- 步骤条 Steps
- 标签栏 TabBar
- 标签页 Tabs
数据输入(11)
- 动作面板 ActionSheet
- 异步选择器 AsyncPicker
- 日历 Calendar
- 复选框 Checkbox
- 输入框 Input
- 选择器 Picker
- 单选框 Radio
- 评分 Rate
- 滑块 Slider
- 开关 Switch
- 时间选择器 TimePicker
信息展示(7)
- 头像 Avatar
- 徽标 Badge
- 单元格 Cell
- 通告栏 NoticeBar
- 进度条 Progress
- 进度环 ProgressLoop
- 轮播 Swiper
反馈(4)
- 对话框 Dialog
- 加载 Loading
- 弹框 Modal
- 轻提示 Toast
开发上手体验和建议
Svelte 是近年来新兴的一款前端框架,不过目前生态还不是特别丰富,STDF 是其中的一款质量非常高的 UI 组件库,无论是组件颜值、代码和用法都非常优雅。
我之前也推荐过很多 PC 端的 Vue 组件库,移动端相对较少,STDF 的作者也道出了原因,这是因为移动端一般面向 C 端用户,对产品的性能、易用性和可用性要求很高。所以做好移动端的产品,需要花费大量精力。
Svelte 和 Vue 对比的几个主要特点:
- 性能:Svelte 通过编译时直接转换为较为精简的 JavaScript 代码,避免了运行时的虚拟 DOM 操作,所以在性能上更胜一筹。Vue 需要运行时的虚拟 DOM
- 大小:Svelte 生成的代码体积更小,对页面加载速度影响较小。Vue 的运行时库还是有一定代码量的
- 编程方式:Svelte 更类似于编译型语言,在编写组件时就确定好了模板、逻辑和样式。Vue 属于典型的 MVVM 框架,需要在组件选项中配置模板、逻辑和样式
- 学习难度:Svelte 的 API 更少,语法更简单直接,上手较快。Vue 具有更完整的框架功能,学习曲线更陡峭
- 生态:Vue 的生态更加丰富成熟,组件、工具、资源等支持都更多。Svelte 生态还在增长中
- 兼容性:Vue 可以兼容到 IE11,兼容性更好。而 Svelte 需要较新版本浏览器
综合来说,如果追求极致的性能表现,就可以选择 Svelte。如果需要生态完整、主流框架,Vue 仍是一个不错的选择。
STDF 这套组件库就凝聚了作者的很多经验,让我们开箱就可以直接使用,节省了大量的开发时间,让我们把精力放在业务上。更小更快的特点,让 STDF 这套组件库特别适合用来开发一些移动端相对简单的业务场景,特别是如果你觉得使用 Vue 或者 React 既麻烦打包又大,写原生 JS 又费时间的话,真的可以考虑用这套 Svelte 的组件库。
安装使用
在已有配置好 Svelte 与 Tailwind 的工程的情况下,我们可以直接安装:
npm i stdf -D
# 或者
pnpm i stdf -D
然后在 Svelet 中使用:
<script>
import { Button } from 'stdf';
</script>
<Button>默认</Button>
更详细的使用方法,可以查看 STDF 官网的文档,文档和代码例子写得很详细易懂。
免费开源说明
STDF 是一款基于 Svelte 和 Tailwind CSS 开发的移动端 web UI 组件库,源码基于 MIT 开源协议托管在 Github 上,而 Svelte 和 Tailwind CSS 同样是 MIT 开源项目,所以我们可以免费用于商业项目,也可以二次开发。
最后强调一下,之前我分享了很多 Vue 的组件库,但这是一个 Svelte 的组件库,不能在 Vue.js 上使用。