Хуки позволяют вам напрямую получать доступ к dispatch
и состоянию редукции, не подключая компонент с помощью connect
, а хуки могут использоваться только в функциональных компонентах
Connect
позволяет нам связывать наш компонент (Класс или функционал) с redux-store
,
Вы можете обратиться к react-redux
документации по хукам из этой ссылки.
Это дало различные хуки, такие как
useSelector
с помощью которого мы можем получить доступ к хранилищу избыточных данных useDispatch
возвращает dispatch
функцию, с помощью которой мы можем отправлять действия с избыточными числами
Пример использования перехватных ловушек для компонента будет (Можно использовать это только в функциональныхКомпоненты)
functions Test() {
const dispatch = useDispatch()
const count = useSelector(state => state.counter)
// If you want to dispatch a redux action using hooks then
// Assume a redux action called increaseCounter
return (
<>
<p>{count}</p>
<button onClick={() => {dispatch(increaseCounter(count + 1))}}>
ClickMe!
</button></>)
}
Если вы хотите достичь того же, используя connect, то (вы можете использовать это в классе или функциональных компонентах)
function Test() {
return (
<>
<p>{this.props.count}</p>
<button onClick={() => {this.props.increaseCounter(this.props.count+1)}}>Click Me!</button>
</>
);
}
const mapStateToProps = state => {
return {
count: state.counter
};
};
const mapDispatchToProps = dispatch => {
return bindActionCreators({ increaseCounter }, dispatch);
};
export default connect(mapStateToProps, mapDispatchToProps)(Test)