Situation
- 实现公司内部移动端组件库统一
- 商业价值,开源,竞争对象有赞,有自己的移动端组件库vant
- 实现一些自定义业务,比如一键换肤、自定义属性等
Task
- 带领小伙伴,从零到一搭建react移动端组件库
Action
- 带领小伙伴,从零到一搭建react移动端组件库,其中我主要负责项目架构、技术选型、开发表单基础组件,比如:search、cell、radio、checkbox、form、select、treeSelect、等。技术选型采用:styled-componented(cssInjs),作用就是覆盖样式更加方便,对于自定义业务比如更换属性,自定义属性更加吻合,架构设计:example(示例完成、完成设计稿并自测)、源码package(icon、组件等)、栈点(提供的官方api,采用md解析生成文档,并将exampl,通过ifream进行预览)、单元测试(属性是否存在、组件是否存在等)、npm发布(git拉取、版本选择、发布npm私库)
Result
- 历经3~4个月,最终完成交付。
驱动测试的流程
- 编写测试:首先,开发人员编写一个测试用例,描述了一个期望的功能。这个测试应该失败,因为相关的功能还未实现。
- 编写足够的代码:为了使测试通过,开发人员编写足够的代码来满足测试的要求。这意味着代码可能是最小的实现,只是为了让测试通过。
- 重构代码:一旦测试通过,开发人员可以对代码进行重构,以改善代码的质量、可读性和可维护性,而不会影响功能。
- 重复迭代:重复以上步骤,不断迭代开发,每次都新增一个小的功能并确保它通过测试。
按需加载
- 组件独立文件,通过建立index文件,全部注册导出
- 通过webpack等提供的第三方插件实现按需加载
- 单独将每个组件单独导出
一键换肤
- 编译时,采用cssInjs,可以使用我们暴露的全露对象,修改相关的颜色值
- 通过编译时,将导出的组件包裹container组件导出
- 提供全局变量覆盖