'커리' 기능으로 리액트 생산성 향상
6063 단어 functionalwebdevreactjavascript
React da ko'pincha ushbu holatdagi 이벤트 핸들러 larni ishlatilishini guvohi bo'lamiz ya'ni odatda
implicit
bo'lgan dastlabki 이벤트 argumentimizga qo'shimcha tarzda 2 - argumentni ham funksiyamizga yuborishga to'g'ri keladi:const handleChange = (e: Event, type: string) => {
// input event va type bilan bog'liq kodimiz
}
return (
<>
<!-- ... -->
<input onChange={(e) => handleChange(e, 'line')} />
<!-- ... -->
<input onChange={(e) => handleChange(e, 'point')} />
<!-- ... -->
<input onChange={(e) => handleChange(e, 'polygon')} />
<!-- ... -->
</>
)
Ushbu kod albatta xatosiz ishlaydi lekin bu yerda muammo
onChange
이벤트 처리기 funksiyamizni yoyishga to'g'ri keladi ya'ni:
onChange={handleChange} => onChange={(e) => handleChange(e)}
Bundan tashqari kodimiz unchalik ham
clean
에마. Balki bu usulni bitta joyda ishlatsak uncha bilinmas lekin bu kodimiz bir nechta joyida qayta-qayta ishlatilsa ayniqsa refactor qilishda muammo yaqqol ko'rinadi.소다 예침:
curried
funksiya bilan kodimizni quyidagi 우아하고 깨끗한 ko'rinishga olib kelishimiz mumkin:const handleChange = (type: string) => (e: Event) => {
// input event va type bilan bog'liq kodimiz
}
return (
<>
<!-- ... -->
<input onChange={handleChange('point')} />
<!-- ... -->
<input onChange={handleChange('line')} />
<!-- ... -->
<input onChange={handleChange('polygon')} />
<!-- ... -->
</>
)
Ya'ni funksiya qaytaradigan funksiyani 이벤트 핸들러 sifatida ishlatamiz.
Curried funksiyalar haqida ushbu linkdan batafsil ma'lumot olishingiz mumkin: https://javascript.info/currying-partials
Reference
이 문제에 관하여('커리' 기능으로 리액트 생산성 향상), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/humoyun/little-react-productivity-boost-by-curried-function-1k29텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)