Throttling e Deboucing em eventos com VueJS e lodash

Clayton Passos
codigorefinado
Published in
2 min readMay 11, 2017

Limitar eventos com throttling e o debouncing são ótimas maneiras de melhorar o desempenho ou reduzir a sobrecarga da rede. Enquanto Vue.js 1 costumava ter suporte nativo para estrangulamento e debouncing eventos, foi removido em Vue 2 no interesse de manter o núcleo slim. Oque é bom pois deixa o Vue 2 leve, mas em uma aplicação real essa leveza não se concretiza pois temos de adicionar mais e mais bibliotecas para termos os recursos e sermos produtivos. Como resultado, a maneira padrão de estrangulamento e debouncing eventos em Vue 2 é agora através lodash .

Lodash pode ser instalado através de yarn ou npm .

# Yarn

$ yarn add lodash

# NPM

$ npm install lodash — save

Métodos de Throttling (limitação)

Limitar seus métodos de manipulação em eventos é bastante fácil. Apenas enrole (wrap) a função que deseja chamar em lodash ‘s _.throttle função. A throttling pode ser usada para garantir que seus eventos sejam preservados, mas separados ao longo do tempo.

<template>

<button @click=”throttledMethod()”>Click me as fast as you can!</button> </template>

<script>

import _ from ‘lodash’

export default {

methods: { throttledMethod: _.throttle(() => {

console.log(‘Executa a cada 2 segundos!’) }, 2000) }

}

</script>

Método Debouncing

Debouncing essencialmente agrupa seus eventos juntos e evita que sejam executados com muita freqüência. Para usá-lo em um componente Vue, só embrulhar (wrap) a função que deseja chamar em lodash ‘s _.debounce função.

<template>

<button @click=”throttledMethod()”>Click me as fast as you can!</button>

</template>

<script>

import _ from ‘lodash’

export default {

methods: { throttledMethod: _.debounce(() => { console.log(‘só executa uma vez a cada dois segundos, no máximo!’) }, 2000) }

}

</script>

Receba E ai curtiu? Receba cupons de desconto dos cursos do Código Refinado!

--

--