成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

八個超級實用的前端代碼片段,總要用得上的!

開發 前端
相信大家都用過?addEventListener吧?你監聽后想要解除需要用到?removeEventListener,但是如果你只是想要一次性監聽的話,可以傳入第三個參數。

今天給大家分享一些在前端開發中,比較實用的代碼片段,希望大家能用得上!

1、檢測點擊元素外部

比如你想要點擊彈窗外部去關閉彈窗,或者 Vue 的自定義指令 clickoutside,都是利用了下面這個代碼片段。

圖片圖片

2、一次性事件監聽

相信大家都用過 addEventListener吧?你監聽后想要解除需要用到 removeEventListener,但是如果你只是想要一次性監聽的話,可以傳入第三個參數。

圖片圖片

3、手動解除事件監聽

還是 addEventListener,如果你不想使用 removeEventListener 去解除監聽的話,你也可以使用 AbortController + signal 去進行手動解除監聽。

圖片圖片

4、控制并發數

現在前端中使用異步操作已經是常態,更別說異步請求了,而當異步請求并發量比較高的時候,為了節約網絡資源提高用戶體驗,我們需要控制并發數。

圖片圖片

limitFn 的具體實現我放在下面了。

const limitFn = (limit) => {
  const queue = [];
  let activeCount = 0;

  const next = () => {
    activeCount--;

    if (queue.length > 0) {
      queue.shift()();
    }
  };

  const run = async (fn, resolve, ...args) => {
    activeCount++;

    const result = (async () => fn(...args))();


    try {
      const res = await result;
      resolve(res);
    } catch { }

    next();
  };

  const enqueue = (fn, resolve, ...args) => {
    queue.push(run.bind(null, fn, resolve, ...args));

    if (activeCount < limit && queue.length > 0) {
      queue.shift()();
    }
  };

  const generator = (fn, ...args) =>
    new Promise((resolve) => {
      enqueue(fn, resolve, ...args);
    });

  return generator;
};

5、生成唯一ID

也就是生成一個唯一的 uuid,其實現在很多庫都可以做,比如 lodash,當然你也可以自己寫一個。

const uuid = (a) =>
  a
    ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)
    : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid)

6、格式化時分秒

如果你想要把時間格式化成 HH:mm:ss 這樣的話。

const formatSeconds = (s) =>
  [parseInt(s / 60 / 60), parseInt((s / 60) % 60), parseInt(s % 60)]
    .join(':')
    .replace(/\b(\d)\b/g, '0$1')

7、提取 URL 的參數

可以將 URL 上的參數提取出來,變成一個對象。

const getUrlParams = (query) =>
  Array.from(new URLSearchParams(query)).reduce(
    (p, [k, v]) =>
      Object.assign({}, p, { [k]: p[k] ? (Array.isArray(p[k]) ? p[k] : [p[k]]).concat(v) : v }),
    {}
  )

8、打開彈窗時禁止頁面滾動

當我們打開彈窗時,我們不希望整個頁面還能滾動,那么可以在打開彈窗時去設置頁面的滾動樣式。

圖片 圖片

責任編輯:武曉燕 來源: 前端之神
相關推薦

2011-07-14 10:07:19

PHP

2024-04-09 00:00:00

Java代碼片段

2024-10-29 10:02:12

圖片自動化腳本

2022-03-18 21:27:36

Python無代碼

2022-12-01 16:53:27

NPM技巧

2024-03-27 14:06:58

Python代碼開發

2015-11-02 09:25:07

jQuery代碼片段

2024-08-27 12:18:23

函數Python

2021-10-29 11:05:34

JavaScript代碼字符串

2015-10-08 08:53:46

PHP代碼片段

2011-07-07 10:35:53

htaccess

2012-01-17 13:54:02

PHP

2023-11-13 10:11:49

開源前端

2022-07-25 15:21:50

Java編程語言開發

2021-10-31 07:36:17

前端JavaScript編程

2020-11-16 16:04:42

CSS設計代碼

2023-11-03 16:02:00

JavaScript開發

2023-06-16 16:34:25

JavaScripWeb 開發

2024-01-04 16:46:58

JavaScript開發

2022-12-16 17:01:15

Web API開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产亚洲精品久久久久动 | 久久久性色精品国产免费观看 | 亚洲女人天堂网 | 婷婷中文在线 | 嫩草视频在线免费观看 | xx视频在线 | 中文字幕成人av | 亚洲成人自拍网 | 中文字幕在线观看av | 久久一级 | 激情欧美一区二区三区中文字幕 | 久久福利 | 国产精品久久久一区二区三区 | 欧美视频在线播放 | 欧美8一10sex性hd | 国产免费一区二区 | 91精品国产日韩91久久久久久 | 亚洲一区在线播放 | 草草视频在线播放 | 成人三级视频 | 超碰伊人久久 | 日本不卡一区二区三区 | 国产乱码久久久久久一区二区 | 欧美成人一区二免费视频软件 | www.4567 | 亚洲高清久久 | 亚洲精品成人av久久 | 欧美福利网站 | 性高湖久久久久久久久aaaaa | 欧美日韩国产精品一区二区 | 自拍亚洲 | 国产精品一区二区久久精品爱微奶 | 欧美一区二区三区在线看 | 久久中文字幕av | 午夜影视在线观看 | 亚洲高清电影 | 国产欧美精品 | 婷婷在线免费 | 黄色在线网站 | 亚洲久久 | 日韩二三区|