Frontend Developer at Delino
استفاده از Hook ها در Redux
قبل از اینکه react-redux نسخه 7.1.0 اش رو ارائه بده پکیجهای زیادی واسه کانفیگ hook در ریداکس نوشته شده بود ولی خب با ارئهی نسخه جدید خیلی از این پکیجها از رده خارج شدن، من در این مقاله قصد دارم استفاده از hook ها در redux رو به شما آموزش بدم، اول از همه باید بگم که کانفیگ create store هیچ تغییری نکرده و تنها قابلیت connect در کامپوننتها که از مکانیزم HOC یا higher-order component استفاده میکرده رو حذف کرده و گفته که از use های hook استفاده کنید.
https://react-redux.js.org/next/api/hooks
دو تا فانکشن خیلی کاربردیش useDispatch و useSelector که در ادامه روش استفادش رو واستون توضیح میدم.
فانکشن useDispatch
اگه قصد دارین از useDispatch استفاده کنید، دور mapDispatchToProps رو خط بکشید، چون دیگه کاربردی واستون نداره.
یه مثال ساده
import React from 'react';
import { useDispatch } from 'react-redux';
export const CounterComponent = ({ value }) => {
const dispatch = useDispatch();
return (
<div>
<span>{value}</span>
<button ={() => dispatch({ type: 'increment-counter' })}>Increment counter</button>
</div>
)
}
فانکشن useSelector
همینطور اگه قصد دارین از useSelector استفاده کنید، دور mapStateToProps رو خط بکشید، چون دیگه اینم کاربردی واستون نداره.
یه مثال ساده
import React from 'react';
import { useSelector } from 'react-redux';
export const CounterComponent = () => {
const counter = useSelector(state => state.counter);
return <div>{counter}</div>
}
نکته جالبی که دوستم سعید جان راجب useSelector بهم گفت اینه که این فانکشن قابلیتی مشابه قابلیت memo داره، به این صورت که در شرایطی که value اون counter مثال بالا تغییر کنه، کامپوننت re-render میشه
مطلبی دیگر از این انتشارات
نحوه ی استفاده از Context در React
مطلبی دیگر از این انتشارات
آیا واقعا عمر Redux به سر رسیده است؟
مطلبی دیگر از این انتشارات
چطور logic پروژمون رو بین React و React Native باید share کنیم؟