防抖
    触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间

    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. timer: null
    6. };
    7. },
    8. methods: {
    9. click() {
    10. clearTimeout(this.timer);
    11. this.timer = setTimeout(() => {
    12. console.log('鼠标单击');
    13. }, 200);
    14. }
    15. }
    16. };
    17. </script>

    节流
    在单位时间内, 只会触发一次事件,如果事件触发后,又重复触发了同一事件,则忽略后面触发的事件,直到第一次事件的计时结束

    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. isFinshed: true
    6. };
    7. },
    8. methods: {
    9. click() {
    10. if (this.isFinshed === true) {
    11. this.isFinshed = false;
    12. this.timer = setTimeout(() => {
    13. console.log('鼠标单击');
    14. this.isFinshed = true;
    15. }, 200);
    16. }
    17. }
    18. }
    19. };
    20. </script>