redux

Steve·2023년 12월 29일

reducer action store
redux-logger from redux
로그 찍히는걸 알수있음

connect로
mapStateToProps, mapdispatchToProps 연결해주는건 옛날 방식.

export default connect(mapStateToProps, mapdispatchToProps)(Subscribers);

useSelector, useDispatch를 사용할 수 있다.

아래는 connect를 해을 때의 코드

import React from "react";
import { connect } from "react-redux";
import { addSubscriber } from "../redux";

const Subscribers = ({ count, addSubscriber }) => {
  return (
    <div className="items">
      <p>구독자 수: {count}</p>
      <button onClick={() => addSubscriber()}>구독하기!</button>
    </div>
  );
};

const mapStateToProps = ({ subscribers }) => {
  return {
    count: subscribers.count,
  };
};
const mapdispatchToProps = {
  addSubscriber,
};

export default connect(mapStateToProps, mapdispatchToProps)(Subscribers);

아래는 connect 안쓰고 useSelector, useDispatch 사용했을 때의 코드
useSelector, useDispatch를 쓰면 아주 코드가 짧아지고 직관적임

import React from "react";
import { addSubscriber } from "../redux";
import { useSelector, useDispatch } from "react-redux";

const Subscribers = () => {
  // 인자가 필요없어짐
  let count = useSelector((state) => state.subscribers.count);
  let dispatch = useDispatch();


  return (
    <div className="items">
      <p>구독자 수: {count}</p>
      <button onClick={() => dispatch(addSubscriber())}>구독하기!</button>
    </div>
  );
};

export default Subscribers;
profile
Front-Dev

0개의 댓글