_.debounce() рдХреЗ рд╕рд╛рде _.debounce()
addEventListener
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореИрдВ event.currentTarget
рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВред
рдпрджрд┐ рд╕рдВрдкрддреНрддрд┐ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рдЗрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрдн рдкрд░ рдмрджрд▓реА рдЧрдИ рд╣реИред рдпрджрд┐ рдЖрдк jQuery рдЬреИрд╕реЗ lib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдИрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдк рдЗрд╕рд╕реЗ рдЙрдмрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред event
рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбреАрдУрдПрдо рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рд╢реНрд░реЛрддрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП currentTarget
рдмрджрд▓рддрд╛ рд╣реИред рдмреЗрд▓рд╛
рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рдирд╛ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдмреЗрд▓рд╛
var debounced = _.debounce(fn, 50);
document.querySelector('.debounced-input').addEventListener('keyup', function(event) {
debounced(event, event.currentTarget);
});
рд╣рд╛рдВ, рдпрд╣ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред gator
рдЬреИрд╕реЗ DOM рдИрд╡реЗрдВрдЯ рдорд╛рдЗрдХреНрд░реЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ
JQuery рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдореИрдВ рдЕрднреА рднреА рдЙрд╕ рддрддреНрд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ currentTarget
рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ this
рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ; рдореИрдВрдиреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЬреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред
@jridgewell рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░ рдХреЛ рд░рд┐рдПрдХреНрдЯ рдСрди рдЪреЗрдВрдЬ рдореЗрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдЬрдм рдореИрдВ рдмрд╣рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЕрдкрдиреЗ рдСрдирдЪреЗрдВрдЬ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЙрдЪрд┐рдд рдШрдЯрдирд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ _.debounce
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЙрдЪрд┐рдд event
рдЦреЛ рджреЗрддрд╛ рд╣реВрдВ - рдиреАрдЪреЗ рджреЗрдЦреЗрдВ
// in my render
<input onChange={ _.debounce(this.updateNote.bind(this), 500) } />
// my change handler
updateNote(event) {
// undefined on event.target, get lodash event not <input/> event target
const note = event.target.value
this.sendNote({ note })
}
рдореЗрд░рд╛ рджреВрд╕рд░рд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдЦреЗрдВред
рдпрд╣ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред рдЖрдкрдХреЛ рдШрдЯрдирд╛ рдХреЛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдСрдирдЪреЗрдВрдЬ рдХреЛ рдПрдХ рдирд┐рд░рдВрддрд░ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рд▓рдЧрд╛рддрд╛рд░ рдШрдЯрдирд╛ рдХреЛ рд╡рд┐рд╡рд╛рджрд┐рдд рд╣реИрдВрдбрд▓рд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
onChange_persist = (e) =>
{
e.persist();
e.onChange_debounced(e);
}
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@jridgewell рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░ рдХреЛ рд░рд┐рдПрдХреНрдЯ рдСрди рдЪреЗрдВрдЬ рдореЗрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдЬрдм рдореИрдВ рдмрд╣рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЕрдкрдиреЗ рдСрдирдЪреЗрдВрдЬ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЙрдЪрд┐рдд рдШрдЯрдирд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ
_.debounce
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЙрдЪрд┐рддevent
рдЦреЛ рджреЗрддрд╛ рд╣реВрдВ - рдиреАрдЪреЗ рджреЗрдЦреЗрдВ