美文网首页
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