q-design-web组件库,是基于q-design rn 组件库,依托unir-cli工具编译封装的可用于移动端h5 web页面的组件库。
其特点是拥有跟q-design同样的设计规范
、使用方法
、通用API
以及基本一致的视觉效果
(因为运行端不同,略有差异)。
使得RN 及 q-design 用户可以更快和更低成本的在h5端接入使用组件。
目前已涵盖组件:
AnimatedTab
, BottomBar
, Bubble
, Button
, Card
, CheckBox
, Dialog
, EmptyStatus
, FloatButton
,
FontFamily
, Icon
, Label
, NavBar
, NoticeItem
, NumberInputer
, PopupLayer
, QToast
, RadioBox
, Review
,
Select
, Switch
, Tab
, Tag
, Tips
组件API同q-design一致
其中新增组件 Switch
, API同React-native 官方Switch一致
⚠️需要注意的是,由于组件编译依托unir-cli以及跨端的原因,同q-design rn组件相比,q-design-web略有差异。
与q-design相比略有差异的组件如下:
组件名 | q-design 组件包 | 差异 |
---|---|---|
QToast | @qnpm/q-components | q-design 使用原生toast,web版则是另外实现,样式略有差异 |
Card | @qnpm/q-design-card | 卡片阴影 目前需要业务自己实现 |
Dialog | @qnpm/q-dialog | 滚动穿透问题,暂不支持mask点击事件,待解决 |
q-design-web 组件安装如下:
npm install @qnpm/q-design-web --save --registry=http://npmrepo.corp.qunar.com
import { Tag } from '@qnpm/q-design-web';
export default class Demo extends Component {
render() {
return (
<>
<Tag
dataSource={dataSource}
onClickItem={(index, isSelected, title) => {
alert(title);
const newSource = [...dataSource];
newSource[index].isSelected = !isSelected;
setDataSource(newSource);
}}
autoScroll={true}
normalItemBackgroundColor={'gray'}
/>
</>
);
}
}
可clone
example 工程体验q-design-web组件,工程地址:
http://gitlab.corp.qunar.com/qnpm/q-design-web-example