1.1.0 • Published 5 years ago

sanyuequi v1.1.0

Weekly downloads
4
License
ISC
Repository
github
Last release
5 years ago

安装 & 使用

npm i save sanyuequi
import { 
  App,
  View,
  Text,
  Button,
  LoadIcon,
  ScrollView,
  Img,
  ListView } from 'sanyuequi'

组件说明

View组件


整个框架的基础,所有元素都可以用它来替代。
在CSS上对它进行了一些设置,这些设置都是移动端上不需要的:禁止了选择,使用合理的盒子模型以及取消了点击高亮的情况。

  user-select: none;
  box-sizing: border-box;
  position: relative;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);

在JS上也进行了一些封装。使用它的时候很简单只需要传入以下属性去使用即可

Prop


参数名字值类型默认值说明是否必需
classNamestringnull该组件的样式类名
idstringnull节点ID属性
styleobjectnull该组件的样式属性
tapfuncnull点击事件
touchStartfuncnull触摸开始事件
touchMovefuncnull触摸移动事件
touchEndfuncnull触摸结束事件
touchCancelfuncnull触摸取消事件
transitionEndfuncnull过渡动画结束事件
animationStartfuncnullCSS 动画开始事件
animationIterationfuncnullCSS 动画重复播放事件
animationEndfuncnullCSS 动画结束事件
getReffuncnull获取DOM节点
contextMenufuncnull上下文菜单事件
tapStopPropagationboolfalse防止tap事件穿透(当处于ScrollView内是不需要设置该值)

App组件


整个 App 组件是覆盖我们浏览器的可视窗口并且是不可滚动的,该组件是整个页面的 root ,使用这个组件会对浏览器作出一些限制和帮助。
为了统一所有浏览器下的滚动以及避免一些浏览器下原生滚动的一些缺陷,我们舍弃了浏览器原生的滚动,这意味着你需要引入我们提供的 ScrollView : 舍去原生的滚动功能,引入用一个相对耗费性能的组件来取代,这样我们能更好的滚动以及更好的控制滚动。

Prop


参数名字值类型默认值说明是否必需
noSysScrollbooltrue是否禁止系统的滚动

全局函数


引入了 App 组件之后,我们可以使用一些预设的提示样式,只要访问全局对象 window.Qapp 即可使用。(需要注意的是,这些预设函数涉及到 dom 节点的生成,所以必须在 componentDidMount 下使用)

1. 加载遮罩(load mask)

bashowLoad(object)hideLoad()来控制出现和消失。

object 参数

名字值类型默认值说明是否必需
contentstring"加载中"加载遮罩提示文字
maskColorstring'rgba(0, 0, 0, 0)'遮罩层背景颜色

2. toast 遮罩(toast mask)

window.Qapp.showToast(object) 来控制出现,在指定时间之后消失。

object 参数

名字值类型默认值说明是否必需
contentstringnull提示文字
themenumber0主体(黑底白字 0/白底黑字 1)
timenumber2000指定xx毫秒消失时间

3. alert 遮罩(alert mask)

window.Qapp.showAlert(object) 来控制出现,在用户操作后消失。

object 参数

名字值类型默认值说明是否必需
contentstringnull提示文字
titlestringnull标题
maskColorstring'rgba(0, 0, 0, 0)'遮罩层背景颜色
rightButtonobject{event: null,name: '确认',color: '#09BB07'}右边按钮
leftButtonobjectnull左边按钮

3. copy 函数(copy function)

window.Qapp.copy(object) 来把指定的字符设置进剪切板中。其中 object 的属性主要是: | 名字 | 值类型 | 默认值 | 说明 | 是否必需 | |---------|---------|--------- |---------|---------| | text | string | "" | 需要复制的文字 | 是| | success | func | null | 成功回调,第一个参数是当前需要复制字符串 |否| | error | func | null | 失败回调,第一个参数是当前需要复制字符串 |否|

ScrollView组件


该组件是为了更好的滚动而存在的,在使用它之前请确认根组件是 noSysScroll:trueApp 组件。
需要注意的是该组件,必须设定宽高(横向滚动需要设置宽度,纵向滚动需要设置高度)。
由于 ScrollView 继承 View 所以View组件的属性,它都可以使用,以下列举的是它自身独有的属性。

Prop


参数名字值类型默认值说明是否必需
scrollbarsbooltrue是否出现滚动条
directionstring'column'滚动方向(row/column)
bouncebooltrue滚动到边界回弹
beforeScrollStartfuncnull滚动开始前执行事件
scrollStartfuncnull滚动开始执行事件
scrollfuncnull滚动中执行事件
scrollEndfuncnull滚动结束执行事件
scrollCancelfuncnull滚动取消执行事件
getScrollControlfuncnull返回一个可控制滚动的函数
mustScrollboolfalse和bounce配合使用,在子元素不满一页的情况下是否还能启用滚动

ListView组件


ListViewScrollView 的拓展。主要是为了需要使用下拉刷新,到底加载更多这些功能而存在的。目前只支持 column 方向。

Prop


参数名字值类型默认值说明是否必需
Itemnodenull子节点组件
itemPropobjectnull子节点组件属性
itemKeyanynull子节点组件 key 属性
dataSourcearraynull数据源
topRefreshControlobjectnull下拉刷新组件样式
topRefreshfuncnull下拉刷新执行事件
bottomRefreshfuncnull上拉到底执行事件
bottomRefreshControlobjectnull上拉到底组件样式
Headernodenull头部组件
headerPropobjectnull头部组件属性
layoutClassNamestringnull列表层样式类名
classNamestringnull滚动层样式类名

Text组件


和 ```View``` 很像,但是它点击能复制当前标签内的值,只是用于文字的展示,而且也不能嵌套使用。但如果需要点击复制的文字,就使用 标签。(注:部分安卓浏览器无法禁止长按复制文字)

Prop


参数名字值类型默认值说明是否必需
successfuncnull复制回调点击当前标签复制当前标签的值,参数带上当前复制值
errfuncnull失败回调参数带上当前复制值
copyboolnullfalse是否启动点击复制

Button组件


继承自 View 组件,为了方便点击时候样式切换而存在的。

Prop


参数名字值类型默认值说明是否必需
tapClassNamestringnull点击时候样式

Img组件


图片组件

Prop


参数名字值类型默认值说明是否必需
srcstringnull图片路径
webpstringnull图片webp格式路径
sizeenum0图片尺寸0:宽度100%,高度自由;1:高度100%,宽度自由;2:contain;3:covor
postionenum0图片尺寸0:CC;1:CL;2:CR;3:TC;4:TL;5:TR;6:BC;7.BL;8:BR

C: center ; L: left ; R: right

utils


工具箱

loadImage

const res = await loadImage(src) // success:true &  error: false

supportWebp

const res = await supportWebp(src) // success:true &  error: false

例子

  1. 每个组件的简单使用
  2. ScrollView 的几种排列样式
  3. ListView 的几种排列样式

todo

  1. Swiper
1.1.0

5 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago