和 zzy-javascript-devtools 有什么差别?
算是zzy-javascript-devtools
的重构版本,支持之前的所有内容 对内(开发):
使用rollup重构打包逻辑 全自动化打包生成 自动生成更新日志以及版本号 全自动化生成对应包的readme.md文件 文件分级更加明确 扩展性提升 统一开发格式 对外(使用):
开放cjs模式 readmd.md文件更加合理,格式统一 新增对vue的支持,以及纯工具包,避免额外开销(分三个包分别按项目决定用哪个) 未来迭代逐渐开放对hooks函数的支持
渣渣宇的开发工具包@react
安装
npm i @utils/ react - S
yarn add @utils/ react - S
使用
import { isPhone, bottomVisible, Img } from '@utils/react'
isPhone ( 13412341234 )
bottomVisible ( )
< Img> < / Img>
更新日志
2023-12-23 version:1.0.1
2023-12-21 version:1.0.0
包简述
devtools
JSB_jsMethod
data- > app提供的参数
>
JSB_jsMethod ( 'openModel' ) . then ( ( ) => {
this . openModel ( )
} )
JSB_init
JSB系列方法初始化 调用JSB_后缀的方法前必须先调用此方法进行初始化
JSB_init ( )
allEquals
全等判断 在两个变量之间进行深度比较以确定它们是否全等。
allEquals ( { a : [ 2 , { e : 3 } ] , b : [ 4 ] , c : 'foo' } , { a : [ 2 , { e : 3 } ] , b : [ 4 ] , c : 'foo' } ) ;
copyToClipboard
copyToClipboard ( 'Lorem ipsum' )
bottomVisible
JSB_appMethod
>
JSB_appMethod ( name, data) . then ( ( ) => console. log ( 'success!' ) )
deepClone
const o = {
a : [
{
b : 1
}
]
}
const cloneO = deepClone ( o)
debounce
const fn = ( ) => {
++ a
}
const debounceFn = debounce ( fn, 300 )
changeTimeYear
changeTimeYear ( new Date ( ) . valueOf ( ) )
deleteHTMLTags
const html = '<span>i am zzy</span>'
const pureHTMLCon = deleteHTMLTags ( html)
elementIsVisibleInViewport
elementIsVisibleInViewport ( el) ;
elementIsVisibleInViewport ( el, true ) ;
detectDeviceType
exitFullscreen
formatMoney
formatMoney ( 12345678 )
formateSeconds
formateSeconds ( 86400 )
formateSeconds ( 3600 )
formatFileSize
formatFileSize ( 300421 )
formatFileSize ( 3004221221 )
getColonTimeFromDate
getColonTimeFromDate3 ( new Date ( ) )
getDomStyle
getDomStyle ( document. querySelector ( 'p' ) , 'font-size' )
generateTree
const comments = [
{ id : 1 , parentId : null } ,
{ id : 2 , parentId : 1 } ,
{ id : 3 , parentId : 1 } ,
{ id : 4 , parentId : 2 } ,
{ id : 5 , parentId : 4 }
] ;
generateTree ( comments )
{
id : 1 ,
children : [
{
id : 2 ,
children : [
{
id : 4 ,
children : [
{
id : 5 ,
children : [ ]
}
]
}
]
} ,
{
id : 3 ,
children : [ ]
}
]
}
formatNowTime
formatNowTime ( now Date ( ) . valueOf ( ) )
getScrollPosition
getScrollPosition ( ) ;
getUrlData
const url = https: / / www. baidu. com/ s? ie= UTF - 8 & wd= github
getUrlData ( url)
infinityScrolling
无限滚动 回调第一行必须设置 infinityScrollIng 的bol 属性为 false,意味着已经进程已经开始,必须等待结束(失败或者成功)才可以重新为true,才可以进行下一次的回调触发 react具体实现组件为 ScrollLoadingBar
devtools. infinityScrollIng ( document. querySelector ( '.bottomScrollBar' ) , ( ) => {
devtools. infinityScrollIng. bol = false
devtools. infinityScrollIng. bol = true
} )
isAndroidPlatform
isBrowserTabFocused
isEmptyObject
if ( isEmptyObject ( obj) ) return
lazyImage
Img懒加载实现 需要设置html中的img src为空,data-src属性为目标路径 必须等待加载目标的 data-src 属性赋值完毕,再执行此方法
< img src= { null } data- src= "targetSrc" className= 'lazyImg' / >
lazyImage ( 'lazyImg' )
preventScroll
固定滚动条 功能描述:一些业务场景,如弹框出现时,需要禁止页面滚动,这是兼容安卓和 iOS 禁止页面滚动的解决方案
preventScroll
launchFullscreen
launchFullscreen ( document. querySelectorById ( 'test' ) )
recoverScroll
恢复滚动条 如果配合 preventScroll 方法使用需要现将 固定前的滚动条高度记录,再恢复时赋值给 recoverScroll 方法
recoverScroll ( 200 ) y200的高度恢复,相当于滚动至200
scrollToTop
平滑滚动至顶部 该代码段可用于平滑滚动到当前页面的顶部。
rewirteLog
setDomRem
rem实现 rem*16px 以蓝湖rem设置为标准 设置16px的rem就是 *8
setDomRem ( 16 ) 1 : 32 ( 蓝狐设计图)
smoothScroll
滚动到指定元素区域 该代码段可将指定元素平滑滚动到浏览器窗口的可见区域。
smoothScroll11 ( '#fooBar' )
typeOf
增强版typeOf typeOf 关键字对于null,date 都会认为是Object,不准确, 使用Object.prototype.toString.call
strTrim
const str = ' 1233 4'
strTrim ( str, 1 )
throttle
const fn = ( n ) => {
a += n
}
const throttleFn = throttle ( ( n ) => fn ( n) )
regModules
isAccountNumber
验证银行卡号 10到30位, 覆盖对公/私账户, 参考微信支付
isCreditCode
isColor16
isEmail
isExternal
isEnglish
isHttpAndPort
isImageUrl
isIdCard
isMoney
isLandlineTelephone
验证座机电话(国内),如: 0341-86091234
isIMEI
isName
isPassword
密码校验 a-z A-Z 0-9 long 6 < val < 21
isPhone
isPassport
isPhoneStrict
验证手机号中国(严谨), 根据工信部2019年最新公布的手机号段
isPostcode
isThunderLink
isTrainNum
isUrl
isVersion
isWeChatNum
验证微信号 6至20位,以字母开头,字母,数字,减号,下划线
isVideoUrl
isWindowsFilePath
isWindowsFolderPath
isInteger
isLicensePlateNumber
components
ErrorBoundary
错误边界 请在App.js中用此组件将 Route组件包裹即可展示错误之后的UI信息 它在渲染期间、生命周期方法和整个组件树的构造函数中捕获错误 无法捕获 事件处理,异步代码等错误
NoData
Img
此组件用于图片懒加载,配合 zzy-javascript-devtools - devtools.lazyImage() 方法使用> 必须等待加载目标的 data-src 属性赋值完毕,再执行此方法
exmaple :
ScrollLoadingBar
无限滚动触发块 直接链接触发事件即可 需要在触发事件内结束时 赋值 infinityScrolling.bol = true
exmaple :
< ScrollLoadingBar
getMoreData= { ( ) => ( pageIndex > 1 ? getDoctorList ( true ) : null ) }
getDataBol= { doctorHasMore}
> < / ScrollLoadingBar>
TopBar
exmaple :
< TopBar arrowBack= { back} title= "首页" / >