美文网首页
vue中使用lodash

vue中使用lodash

作者: 废弃的种子 | 来源:发表于2021-07-01 14:58 被阅读0次

介绍

Lodash是一个意在提高开发者效率,提高JS原生方法性能的JS库。简单的说就是,很多方法lodash已经帮你写好了,直接调用就行,不用自己费尽心思去写了,而且可以统一方法的一致性。Lodash使用了一个简单的 _ 符号,就像Jquery的 $ 一样,十分简洁。

中文文档

https://www.lodashjs.com/

  • 使用案例
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      {{counter}}
      <button @click="debouncedClick">点击</button>
    </div>
  </body>
</html>
<script src="https://unpkg.com/vue@next"></script>
<script src="https://unpkg.com/lodash@4.17.20/lodash.min.js"></script>
<script>
  Vue.createApp({
    data() {
      return {
        counter: 0,
      };
    },
    methods: {
      // 用 Lodash 的防抖函数
      debouncedClick: _.debounce(function(){  //这里不能改为function
        this.counter++;
      }, 500),
    },
  }).mount("#app");
</script>

但是,这种方法对于可复用组件有潜在的问题,因为它们都共享相同的防抖函数。为了使组件实例彼此独立,可以在生命周期钩子的 created 里添加该防抖函数:

 <!--
Lodash是一个意在提高开发者效率,提高JS原生方法性能的JS库。简单的说就是,很多方法lodash已经帮你写好了,直接调用就行,不用自己费尽心思去写了,而且可以统一方法的一致性。Lodash使用了一个简单的 _ 符号,就像Jquery的 $ 一样,十分简洁。
 * @Description: Lodash 防抖、节流
 * @Autor: sy
 * @Date: 2021-07-01 14:29:08
 * @LastEditors: sy
 * @LastEditTime: 2021-07-05 11:50:38
  https://www.lodashjs.com/
-->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      {{counter}}
      <button @click="debouncedClick(1)">点击</button>
    </div>
  </body>
</html>
<script src="https://unpkg.com/vue@next"></script>
<!-- <script src="https://unpkg.com/lodash@4.17.20/lodash.min.js"></script> -->
<script src="./js/lodash.min.js"></script>
<script>
  Vue.createApp({
    data() {
      return {
        counter: 0,
      };
    },
    created() {
      // 用 Lodash 的防抖函数
      this.debouncedClick = _.debounce(this.dianji, 500);
    },
    unmounted() {
      // 移除组件时,取消定时器
      this.debouncedClick.cancel();
    },
    methods: {
      // 用 Lodash 的防抖函数
      // dianji: _.debounce(function () {
      //   //这里不能改为function
      //   this.counter++;
      // }, 500),
      dianji(t) {
        console.log(t)
        this.counter++;
      },
    },
  }).mount("#app");
</script>

相关文章

网友评论

      本文标题:vue中使用lodash

      本文链接:https://www.haomeiwen.com/subject/osbjultx.html