一直以来都想作个组件库,一方面是对工做中常遇问题的总结,另外一方面也确实可以提高工做效率(谁又不想造一个属于本身的轮子呢~),因而乎就有了本文的主角儿rn-components-kit
。vue
市面上web
的UI组件库如此之多,react
相关的有antd
,vue
相关的有element
。不过,今天介绍的是react-native
的一个组件库。不一样于上述组件库都有统一的视觉规范,rn-components-kit
更注重的是在提供组件基本能力的同时尽量多地赋予自定义样式的可能性。node
放上仓库地址,欢迎star
,欢迎提issue
,欢迎提PR
~react
下面就让咱们来认识一下rn-components-kit
~android
你能够经过下面的命令安装rn-components-kit
:ios
npm install rn-components-kit --save
复制代码
import React from 'react';
import {Badge} from ' @rn-components-kit/badge';
const TestComponent = () => <Badge/>;
复制代码
上述的方法将会把全部的组件打进bundle
内,即便你没有用到全部的组件。若是你想减小包大小,你能够这样引入:git
npm install @rn-components-kit/badge --save
复制代码
import React from 'react';
import {Badge} from ' @rn-components-kit/badge';
const TestComponent = () => <Badge/>;
复制代码
事实上,每一个组件都是支持单独安装的,咱们也推荐你使用这种方式引入组件。github
咱们建立了一个app
专门用来演示每一个组件的使用方法以及运行效果,你能够点击这里查看示例代码。若是你想运行这个例子,你须要先下载本仓库到本地。web
# download repo
git clone https://github.com/SmallStoneSK/rn-components-kit.git
# install dependencies
npm install
# for iOS
react-native run-ios
# for android
react-native run-android
复制代码
如下是运行示例app后各界面的截图:npm
图标右上角的圆形徽标数字。支持如下特性:react-native
npm install @rn-components-kit/badge --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
![]() |
Demo3 Code |
![]() |
Demo4 Code |
按钮组件,支持如下特性:
default
,primary
,success
,warning
和danger
5种主题small
,default
和large
3种大小square
,default
和round
3种形状icon
按钮和控制图标位置outline
样式按钮block
样式按钮link
样式按钮npm install @rn-components-kit/button --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
![]() |
Demo3 Code |
![]() |
Demo4 Code |
![]() |
Demo5 Code |
![]() |
Demo6 Code |
![]() |
Demo7 Code |
轮播组件,就像"旋转木马"同样。支持如下特性:
注意
水平
模式时,width
和itemWidth
必须设置。垂直
模式时,height
和itemHeight
必须设置。data
属性,否则轮播组件中的内容将不会更新。npm install @rn-components-kit/carousel --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
![]() |
Demo3 Code |
![]() |
Demo4 Code |
![]() |
Demo5 Code |
![]() |
Demo6 Code |
![]() |
Demo7 Code |
复选框组件。
npm install @rn-components-kit/checkbox --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
![]() |
Demo3 Code |
![]() |
Demo4 Code |
DeckSwiper让你一次评估一个选项,而不是从一组选项中进行选择。
npm install @rn-components-kit/deck-swiper --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
分割线组件,支持两种方向: horizontal
和 vertical
.
npm install @rn-components-kit/divider --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
语义化的矢量图形。支持如下特性:
注意:确保你的项目已经集成了ART模块
若是你遇到诸如No component found for view with name "ARTXXX"
之类的报错,那是由于你的项目尚未集成ART
模块。你须要:
Libraries
-> Add Files to
-> node_modules/react-native/Libraries/ART/ART.xcodeproj
。Linked Frameworks and Libraries
,点击+
选择libART.a
,而后从新编译工程。react-native run-ios/android
,重启项目。npm install @rn-components-kit/icon --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
![]() |
Demo3 Code |
进度条组件,展现当前操做进度,支持如下特性:
line
和circle
两种类型normal
,active
,success
和fail
四种状态line
类型)注意
因为本组件支持线性渐变选项,因此你的项目须要集成react-native-linear-gradient
。若是你的项目还没集成,你能够参照这里的指示完成。
npm install @rn-components-kit/progress --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
![]() |
Demo3 Code |
![]() |
Demo4 Code |
![]() |
Demo5 Code |
Radio组件让用户从一堆选项中选择一项,支持如下特性:
npm install @rn-components-kit/radio --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
![]() |
Demo3 Code |
![]() |
Demo4 Code |
评分组件,支持如下特性:
点选
和滑动
操做进行评分类型
,颜色
,大小
)npm install @rn-components-kit/rating --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
![]() |
Demo3 Code |
滚动选择器,支持如下特性:
Android
和iOS
平台的交互差别ScrollPicker.Item
支持自定义选项内容npm install @rn-components-kit/scroll-picker --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
![]() |
Demo3 Code |
骨架屏,常在loading
时起占位的做用,支持如下特性:
avatar
,title
,paragraph
三部分均支持定制化withSkeleton
彻底定制化骨架屏的组成和样式注意
当你使用装饰器
的语法使用高阶组件withSkeleton
时,确保你的项目安装了插件@babel/plugin-proposal-decorators
.
npm install @rn-components-kit/skeleton --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
以滑动的交互形式,从指定范围内选择值。支持如下特性:
水平
或垂直
两种方向1
或2
个滑块npm install @rn-components-kit/slider --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
![]() |
Demo3 Code |
![]() |
Demo4 Code |
用于展现页面或区块的加载中状态。支持如下7种不一样动画类型:
Ladder
Rainbow
Wave
RollingCubes
ChasingCircles
Pulse
FlippingCard
npm install @rn-components-kit/spin --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
![]() |
Demo3 Code |
![]() |
Demo4 Code |
![]() |
Demo5 Code |
![]() |
Demo6 Code |
![]() |
Demo7 Code |
iOS样式的滑动隐藏按钮组件,支持如下特性:
左
和右
两个方向滑出npm install @rn-components-kit/swipe-out --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
![]() |
Demo3 Code |
开关选择器,支持如下特性:
cupertino
和material
npm install @rn-components-kit/switch --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
![]() |
Demo3 Code |
![]() |
Demo4 Code |
![]() |
Demo5 Code |
进行标记和分类的小标签。支持如下特性:
outline
和solid
npm install @rn-components-kit/tag --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
![]() |
Demo2 Code |
![]() |
Demo3 Code |
当用户点击某个元素,展现一个气泡框,支持如下特性:
top
和bottom
两个方向npm install @rn-components-kit/tooltip --save
复制代码
详细API请查看文档
组件示例预览效果 | 代码 |
---|---|
![]() |
Demo1 Code |
最后再次放上仓库地址,欢迎star
,欢迎提issue
,欢迎提PR
~
你也能够关注个人Blog,欢迎一块儿交流学习~