kitking-h5-ui

1.2.9 • Public • Published

[TOC]

按需加载

  • 1.下载 babel 插件

npm i babel-plugin-import

  • 2.配置.babelrc 文件
{
    "plugins": [
        ...
        +[
        +    "import",
        +    [{ "libraryName": "antd-mobile", "style": true }, { "libraryName": "kitking-h5-ui", "style": true }]
        +]
    ]
}

依赖下载

npm i kitking-h5-ui

#组件

View

视图根组件,每一个视图都应该被View组件包裹

```js
<View>
    ...
</View>
```

Header

页面头部
组件属性说明
属性名 说明 类型 默认值
title 可修改页面document.title 属性,兼容微信浏览器 string null

Content

页面内容应该被Content组件包裹,组件包含Scroll组件
属性名 说明 类型 默认值
hasHeader 是否有Header组件 bool true
hasFooter 是否有Footer组件 bool false
其他属性参考[Scroll](#Scroll)

Footer

页面底部组件,结合TabBar一起使用

Scroll

页面滚动组件,可上拉刷新、下拉加载。组件以better-scroll基础开发

属性名 说明 类型 默认值
pullDownRefresh 下拉刷新组件,方法返回Promise。 () => <Promise | void> null
pullUpLoad 上拉加载组件,方法返回Promise。Promise resolve 值为true时,则表示还有更多数据,false表示无数据加载 () => <Promise | void> null
loading 加载中时展示的组件 node <Spinner />
className 扩展样式 string null
noMore 上拉加载 没有更多数据(Promise 为false) 显示的文字 string '没有更多数据'
more 上拉加载之前文字 string ''
pullDownRefreshLoading 下拉加载loading状态,当pullDownRefresh 返回值void 生效 bool -
pullUpLoadLoading 上拉加载loading状态,当pullUpLoad 返回值void生效 bool -
hasMore 上拉加载完成后是否还有数据状态,当pullUpLoad 返回值void生效 bool -
更多属性参考[better-scroll](https://ustbhuangyi.github.io/better-scroll/#/)

TabBar

底部导航组件,对ant-mobile TabBar组件修改,组件属性不变。

属性参考(https://mobile.ant.design/components/tab-bar-cn/)

Form

表单验证组件。

Form.create(option: Object) => (WrappedComponent: React.Component) => React.Component

用法参考rc-form

Form.createItem(config: Objectkey:Object) => Objectkey:React.Component

通过配置,生成表单组件。 config参数说明如下

属性名 说明 类型 默认值
component 表单组件 React.Component -
name 表单组件name值 stirng ''
initialValue 表单组件初始值 any ''
componentProps 组件属性 Object -
rules 验证规则 Object[] -

Form.formShape 用于设置组件的propTypes form值

更多组件请参考Ant Design Mobile of React

fixModal

修复modal滚动穿透 https://github.com/ant-design/ant-design-mobile/issues/1947 使用方法:

第一步:import { common } from 'kitking-h5-ui';
第二步:showModal = (key) => (e) => {
        e.preventDefault(); // 修复 Android 上点击穿透
        this.setState(
            {
                'modal': true
            },
            () => common.fixModal() //修复IOS页面内容滚动问题
        );
    };
第三步:<Modal
            visible={this.state.modal}
            transparent
            maskClosable={false}
            onClose={this.onClose('modal1')}
            title="Title"
            <div style={{ height: 100, overflow: 'scroll' }} className="scroller"> //可滚动部分需要添加scroller样式
                scoll content...
                <br />
                scoll content...
                <br />
                scoll content...
                <br />
                scoll content...
                <br />
                scoll content...
                <br />
                scoll content...
                <br />
            </div>
        </Modal>

ProgressiveImage

渐进加载图片,用于图片预加载

属性名 说明 类型 默认值 是否必传
delay 延时显示时间 number - O
onError 图片加载错误回调 (errorEvent: Event) => void - O
placeholder 加载高清图片前,需要展示的图片 可为字符串或者图片地址字符串 string - O
src 图片地址 string - M
srcSetData 响应式加载图片 参考 {srcSet, sizes} - O
children 自定义子组件 children: (string, boolean, srcSetData) => React.Node (string, boolean, srcSetData) => <img> O
className 默认img样式 string - O
style 默认img style 样式 CSSProperties - O
alt 默认img alt 属性 sting - O
//基础用法
import { ProgressiveImage } from 'kitking-h5-ui';
import min_bg from '../../resource/img/min_bg.png'; //压缩后的图片
import bg from '../../resource/img/bg.png';
import bg2 from '../../resource/img/bg@2x.png';
import bg3 from '../../resource/img/bg@3x.png';
<ProgressiveImage src={bg3} placeholder={min_bg} style={{ width: '10rem', height: '10rem' }} alt="an image" />

//使用loading参数
<ProgressiveImage src={bg3} placeholder={min_bg}>
  {(src, loading) => (
    <img style={{ opacity: loading ? 0.5 : 1 }} src={src} alt="an image" />
  )}
</ProgressiveImage>

//使用srcSetData 做响应适配
<ProgressiveImage 
    src={bg} 
    placeholder={img_gift} 
    srcSetData={{
        srcSet: `${bg} 320w, ${bg2} 700w, ${bg3} 2000w`, //属性使用方法参考 https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/img
        sizes: '(max-width: 2000px) 100vw, 100%' //属性使用方法参考 https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/img
    }} 
    style={{ width: '10rem', height: '10rem' }} alt="an image" />

更新日志:

时间 类型 修改人 版本号 修改内容
2018-11-12 M fusy 1.0.1 增加fixModal方法,修复ant-mobile弹框组件,在IOS设备上页面可滚动问题 https://github.com/ant-design/ant-design-mobile/issues/1947
2018-11-14 M fusy 1.0.3 修复fixModal Android 设备滚动穿透问题
2018-11-15 M fusy 1.1.0 扩展Scroll上拉加载、下来加载完成方式,新增可通过props.pullDownRefreshLoading、props.pullUpLoadLoading、props.hasMore 来处理完成状态;content嵌套Scroll优化。
2018-11-15 M fusy 1.1.0 添加Header props.title 属性。可通过header title属性更改document.title 兼容微信浏览器
2018-11-15 A fusy 1.1.0 新增ProgressiveImage组件,渐进加载图片组件
2018-11-16 M fusy 1.1.1 处理Scroll支持lazyload组件

build:打包 feat: 改动 fix: 修复 revert: 重构

Readme

Keywords

none

Package Sidebar

Install

npm i kitking-h5-ui

Weekly Downloads

0

Version

1.2.9

License

ISC

Unpacked Size

456 kB

Total Files

81

Last publish

Collaborators

  • kayak-008