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 میشه
مطلبی دیگر از این انتشارات
مثال کاملی از پیاده سازی یک برنامه وبی پایه بر React
مطلبی دیگر از این انتشارات
نگاهی به نسخه جدید ریاکت ۱۶.۶ و نسخه آینده آن
مطلبی دیگر از این انتشارات
استفاده از Flexbox در React Native