2.1.1 • Published 1 year ago

beyond-lib v2.1.1

Weekly downloads
10
License
MIT
Repository
github
Last release
1 year ago

beyond lib

从原先版本的 beyond 库中分离出来的函数库,当前版本包括以下几个部件:

  • assign
  • browser
  • dateDiff
  • dateFormat
  • htmlHelper
  • klass
  • namespace
  • storage
  • url

已经支持 typescript

安装

npm install beyond-lib --save

浏览器兼容性

IE11,Firefox 和 Chrome 最新版本

使用方式

es5 方式

//方式一
var beyondlib = require('beyond-lib')
var storage = beyondlib.storage

//方式二 推荐,避免全局加载
var storage = require('beyond-lib/lib/storage')

typescript 方式

//方式一

import * as storage from 'beyond-lib/lib/storage'

import {storage} from 'beyond-lib'

文档

browser parse

浏览器解析

import {parseBrowser} from 'beyond-lib/lib/browser'

var info = parse(userAguent)

info.isIE   //boolean
info.isIE8  //boolean
info.isIE9  //boolean
info.isIE10  //boolean
info.isIE11  //boolean
info.isIE678  //boolean
info.isEdge  //boolean
info.isChrome  //boolean
info.isFirefox  //boolean
info.isSafari  //boolean
info.isMicroMessenger //boolean 是否微信浏览器
info.name //browser name  like 'Chrome' , 'Firefox' , 'IE' ,'Opera' , 'Safari' , 'Edge'
info.version //browser version
info.isWindows  //boolean
info.isMac  //boolean
info.isiPhone  //boolean
info.isiPad  //boolean
info.isiPod  //boolean
info.isAndriod  //boolean
info.isLinux  //boolean

dateDiff

返回两个时间点之间的时间间隔,如果第一个参数代表的时间晚于第二个参数,返回正数,相等返回0,否则返回负数

import dateDiff  from 'beyond-lib/lib/dateDiff'
dateDiff.years(new Date(2008,01,01),new Date(2006,02,01))  // return 2
dateDiff.years(1170259200000,1141142400000)  // return 1
dateDiff.years(new Date(2006,01,01),new Date(2008,02,01))  // return -2
dateDiff.years(+new Date(2007,01,01),new Date(2007,02,01))  // return 0
dateDiff.years(+new Date(2007,01,01),new Date(2007,02,01))  // return 0

dateDiff.months(date1,date2)
dateDiff.months(timestamp1,timestamp2)
dateDiff.months(date1,timestamp2)

dateDiff.days(date1,date2)
dateDiff.hours(date1,date2)
dateDiff.minutes(date1,date2)
dateDiff.seconds(date1,date2)

dateFormat

返回格式化后的日期时间字符串

import dateFormat from 'beyond-lib/lib/dateFormat'
dateFormat(new Date(2000,00,01,12,12),'yyyy-MM-dd')  // 返回该时间戳的默认日期 2000.01.01
类型说明
yyyy4位数年份
yy2位数年份
MM2位数月份,如果是个位则前置0
M月份
dd2位数日期,不足前置0
d日期
HH2位数24制小时,不足2位前置0
H24制小时
hh2位数12制小时,不足2位前置0
h12制小时
mm2位数分钟,不足前置0
m分钟
ss2位数秒,不足前置0
s
S毫秒
u星期几,0-6,0表示周日

htmlHelper

import htmlHelper from 'beyond-lib/lib/htmlHelper'
htmlHelper.encodeHTML('<a href="#">hello&\'quote\'</a>')
htmlHelper.decodeHTML('&lt;a href=&quot;#&quot;&gt;hello&amp;&#039;quote&#039;&lt;/a&gt;')

storage

浏览器本地存储,包括 localStorage 和 cookie

import * as storage from 'beyond-lib/lib/storage'
//localstorage
storage.set('key',{value : 'value'})
storage.get('key')

//cookie,expire 单位为天
storage.setCookie('key','value')
storage.setCookie('key','value',expire,path,domain,secure)
storage.setRawCookie('key','value')
storage.setRawCookie('key','value',expire,path,domain,secure)
storage.getCookie('key')
storage.getRawCookie('key')
storage.removeCookie('key')

url

url解析

import {parseUrl} from 'beyond-lib/lib/url'

var info = parse('http://rob:abcd1234@1.2.3.4:9090/path/index.html?query1=test&silly=willy#test=hash&chucky=cheese')
info.protocol   // http
info.auth       // rob:abcd1234
info.user 		// rob
info.pass 		// abcd1234
info.host 		// 1.2.3.4:9090
info.port  		// 9090
info.hostname   // 1.2.3.4
info.hash  		// test=hash&chucky=cheese
info.search 	// ?query1=test&silly=willy
info.query 		// {query1 : 'test' , silly : 'willy'}
info.pathname   // /path/index.html
info.url 		// http://rob:abcd1234@1.2.3.4:9090/path/index.html?query1=test&silly=willy#test=hash&chucky=cheese

EventBus

自定义事件,事件派发

import EventBus from 'beyond-lib/lib/EventBus'
var e = EventBus

//绑定事件
let off = e.on('load',function(event){
	console.log('loaded')
	console.log(event.data)
})

//触发事件
e.trigger('load',data)


//解除绑定
off()

lock & delay

节流 和 防抖

// 节流
import lock from 'beyond-lib/lib/lock'
// 防抖
import delay from 'beyond-lib/lib/delay'

let fn = ()=> console.log('abc')

let lockFn = lock(fn,0.3)  
let delayFn = lock(fn,0.3)  

createStore & createProxy

缓存 remoter 接口和变更 remoter 接口返回,与 beyond-remote 搭配食用更香

import createStore,{createProxy} from 'beyond-lib/lib/createStore'
let i = 0
var remoter = function(){
	return new Promise(function(resolve,reject){
		resolve({data : ++i})
	})
}
let remoterWithCache = createStore(remoter)
remoterWithCache().then((res)=> console.log(res.data))  // 1
remoterWithCache().then((res)=> console.log(res.data))	// 1

let j = 0
var remoter2 = function(){
	return new Promise(function(resolve,reject){
		resolve({data : ++j})
	})
}
let remoterWithCache2 = createStore(remoter2,(res)=> res.data  )
remoterWithCache().then((data)=> console.log(data)) // 1
remoterWithCache().then((data)=> console.log(data))	// 1

let k = 0
var remoter3 = function(){
	return new Promise(function(resolve,reject){
		resolve({data : ++k})
	})
}
//createProxy 单纯对接口调用做数据过滤,不做缓存
let remoterWithProxy = createProxy(remoter3,(res)=> res.data  )
remoterWithProxy().then((data)=> console.log(data)) // 1
setTimeout(()=>{
	remoterWithProxy().then((data)=> console.log(data))	// 2
},1000)
2.1.1

1 year ago

2.1.0

2 years ago

2.0.5

4 years ago

2.0.4

4 years ago

2.0.3

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

2.0.0-beta-1

4 years ago

1.3.5

5 years ago

1.3.4

6 years ago

1.3.3

7 years ago

1.3.1

7 years ago

1.3.0

7 years ago

1.3.2

7 years ago

1.2.2

7 years ago

1.2.1

7 years ago

1.2.0

7 years ago

1.1.0

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago

0.6.7

8 years ago

0.6.6

8 years ago

0.6.5

8 years ago

0.6.4

8 years ago

0.6.2

8 years ago

0.6.0

8 years ago

0.5.1

8 years ago

0.5.0

8 years ago