1.0.0 • Published 7 years ago
hanfunc v1.0.0
Hanfunc
- a wrapper function package
Installation
You can install with npm:
$ npm install hanfunc
Usage
import {query, serialize, $, removeNode, insertAfter, addClass, removeClass, getAbsoluteUrl, debounce, throttle, removeItemByIndex} from 'hanfunc'
Function
query(name, querystring)
- Function for gets the value of the specified name in the specified querystring
query('name', '?name=js') //return 'js'
serialize(data)
- Function for turn the object into a url string
serialize({hello: 'js'}) //return '?hello=js'
$(selector)
- Function for simulating jQuery
$(selector) //return {DOM|undefined}
removeNode(node)
- Function for Deleting DOM node
removeNode(node) //return {DOM}
insertAfter(node)
- Function for inserting the node node after the target node
insertAfter(node, target) //return true or false
addClass(node, className)
- Function for add class name
addClass(node, className) //return true or false
removeClass(node, className)
- Function for remove class name
removeClass(node, className) //return true or false
getAbsoluteUrl(url)
- Function for get absolute url
getAbsoluteUrl('/hhh') //return 'https://github.com/hhh'
debounce(callback, time)
- Function for avoiding shake
- example:
test('test true', () => {
jest.useFakeTimers() // 声明语句,启用jest伪装计时器函数,因为使用了advanceTimersByTime()
const callback = jest.fn() // 声明语句,使用jest伪装函数
const createDebounce = debounce(callback, 300)
expect(callback).not.toBeCalled() // callback还未被调用
for (let i = 0; i < 11; i++) { // 循环执行createDebounce 11次,每次都在经过299ms时setTimeout被刷新
createDebounce()
jest.advanceTimersByTime(299) // 过了299ms
}
expect(callback).not.toBeCalled() // callback还未被调用
jest.advanceTimersByTime(1) // 再过1ms
expect(callback).toBeCalled() // callback被调用
expect(callback).toHaveBeenCalledTimes(1) // callback只被调用1次
})
throttle (callback, time)
- Function for timer
- example:
test('test true', () => {
jest.useFakeTimers() // 声明语句,启用jest伪装计时器函数,因为使用了advanceTimersByTime()
const callback = jest.fn() // 声明语句,使用jest伪装函数
const createThrottle = throttle(callback, 300)
expect(callback).not.toBeCalled() // callback还未被调用
for (let i = 0; i < 11; i++) { // 循环执行createDebounce 11次,每次的setTimeout不会被刷新
createThrottle()
jest.advanceTimersByTime(299) // 过了299ms
}
expect(callback).toBeCalled() // callback被调用
expect(callback).toHaveBeenCalledTimes(5) // callback被调用5次
jest.advanceTimersByTime(1) // 再过1ms
expect(callback).toHaveBeenCalledTimes(6) // callback被调用6次
})
removeItemByIndex(index, arr)
- Function for remove item by index
removeItemByIndex(1, [1, 2, 3]) //return [1, 3]
1.0.0
7 years ago