5個實用JS庫99%的人可能都不知道
來源:
奇酷教育 發表于:
5個實用JS庫99%的人可能都不知道
前言
作為一名前端開發者,我通過這些JavaScript庫大大提高了自己的效率,比如格式化日期、處理URL參數、調試手機網頁等。
1.使用“Day.js”格式化日期和時間
地址:https://day.js.org/en/
作為一名開發人員,我受夠了在 JavaScript 中操作日期和時間,因為它太麻煩了。
比如我們要打印當前的日期和時間,就需要寫一大段代碼來完成。
const getDate = () => {
const fillZero = (t) => {
return t < 10 ? `0${t}` : t
}
const d = new Date()
const year = d.getFullYear()
const month = fillZero(d.getMonth() + 1)
const day = fillZero(d.getDate())
const hour = fillZero(d.getHours())
const minute = fillZero(d.getMinutes())
const second = fillZero(d.getSeconds())
return `${year}-${month}-${day} ${hour}:${minute}:${second}`
}
console.log(getDate()) // 2022-05-09 07:19:14
幸運的是,使用 Day.js 只需一行代碼即可完成。
console.log(dayjs().format('YYYY-MM-DD HH:mm:ss')) // 2022-05-09 07:19:14
注意:“Day.js 是一個極簡主義的 JavaScript 庫,它使用大部分與 Moment.js 兼容的 API 為現代瀏覽器解析、驗證、操作和顯示日期和時間。
如果你使用過 Moment.js,那么,使用Day.js,你也不會覺得很難。”
2.使用“qs.js”格式化URL參數
地址:https://github.com/ljharb/qs
我們為了獲取“URL”的參數,也許會寫一個這樣的函數。
const formatSearch = () => {
window.location.search.slice(1).split('&').reduce((res, it) => {
const [ key, value ] = it.split('=')
res[ key ] = value
return res
}, {})
}
// https://medium.com?name=fatfish&age=100
const search = formatSearch() // { name: 'fatfish', age: 100 }
// use qs.js to format
const search2 = qs.parse(window.location.search.slice(1)) // { name: 'fatfish', age: 100 }
但是,現在我們如果要實現這樣一個新功能,就會變得簡單很多。
如果我們想在“https://medium.com”中添加姓名和年齡兩個參數。
// 1. url = https://medium.com
// 2. params = { name: 'fatfish', age: 100 }
const splitSearch = (url, params) => {
const search = Object.entries(params).map((it) => it.join('=')).join('&')
return `${url}?${search}`
}
const url = 'https://medium.com'
const params = { name: 'fatfish', age: 100 }
console.log(splitSearch(url, params)) // https://medium.com?name=fatfish&age=100
// use qs.js to stringify url
console.log(`${url}?${qs.stringify(params)}`) // https://medium.com?name=fatfish&age=100
3.使用“js-cookie.js”讀寫cookies
地址:https://github.com/js-cookie/js-cookie
我們都知道在 JavaScript 中操作 cookies 不是一件簡單的事情,為了提高你的工作效率我強烈推薦“js-cookie.js”,它是一個簡單、輕量級的 JavaScript API,用于處理 cookies。
Cookies.set('name', 'fatfish', { expires: 10 })
Cookies.get('name') // fatfish
4. 為什么選擇 Lodash?
地址:https://github.com/lodash/lodash
先來看看Lodash的介紹:
Lodash 通過消除處理數組、數字、對象、字符串等的麻煩,使 JavaScript 變得更容易。Lodash 的模塊化方法非常適合:
迭代數組、對象和字符串
操縱和測試值
創建復合函數
// 1. Flatten the array
_.flattenDeep([ 1, [ 2, [ 3, [ 4, [ 5 ]] ] ] ]) // [1, 2, 3, 4, 5]
// 2. More convenient object traversal
_.each({ name: 'fatfish', age: 100 }, (val, key) => {
console.log(val, key)
// fatfish name
// 100 'age'
})
// 3. ...
5、在移動端使用“Vconsole”調試網頁
地址:https://github.com/Tencent/vConsole
在移動設備上調試網頁非常困難,但有了“Vconsole”,一切都會變得容易得多。我們可以通過掃描此二維碼或點擊網址(http://wechatfe.github.io/vconsole/demo.html)來體驗其功能。
TIP: 與chrome瀏覽器的devtools類似,Vconsole提供了以下功能幫助你更好的調試網頁。
日志:console.log、info、error、…...
網絡:XMLHttpRequest、Fetch、sendBeacon
元素:HTML 元素樹
存儲:Cookies、LocalStorage、SessionStorage
手動執行JS命令
自定義插件