[리액트 회원인증 구현] 3. 회원가입과 로그인 구현 ( 리덕스 )

2022. 8. 4. 08:31·FrontEnd/React

1. 리덕스로 폼 상태 관리하기

auth  모듈을 수정해준다.

 

/*
 * <pre>
 * @title auth.js
 * @desc auth 모듈생성 (redux toolkit적용 ), counterSlice api사용
 * </pre>
 *
 * @author yunrap
 * @since 2022.07.17 17:27:11
 * @version 0.1.0
 * @see =================== 변경 내역 ==================
 *   날짜       변경자     내용
 *  2022.07.17.  yunrap  최초생성
 */

import { createSlice } from "@reduxjs/toolkit";

const initialState = {
  register: {
    username: "",
    password: "",
    passwordConfirm: "",
  },
  login: {
    username: "",
    password: "",
  },
};

export const authSlice = createSlice({
  name: "auth",
  initialState,
  reducers: {
    sample_action: (state) => {
      state.action = "auth/SAMPLE_ACTION";
    },
    initialize_form: (state, { payload: form }) => ({
      ...state,
      [form]: initialState(form),
    }),
  },
});

export const { sample_action, initialize_form } = authSlice.actions;

export default authSlice.reducer;

처음에 useEeffect로  처음렌더링후 initailiaze_form 액션생성 함수를 호출해준다.

initailiaze_form을 통해초기값을 우선 설정해준다.

 

 

 

 

2.  LoginForm 화면 구현

그후 useDispatch 와 useSelector 함수를 사용하여 컴포넌트와 리덕스를 연동시킨다.

로그인하는 함수를 구현한다.

 

/*
 * <pre>
 * @title LoginForm.js
 * @desc auth 컨테이너 생성
 * </pre>
 *
 * @author yunrap
 * @since 2022.07.25 22:39:34
 * @version 0.1.0
 * @see =================== 변경 내역 ==================
 *   날짜       변경자     내용
 *  2022.07.25.  yunrap  최초작성
 */

import React, { useEffect } from "react";
import AuthForm from "../../components/auth/AuthForm";
import { change_field, initialize_form } from "../../modules/auth";
import { useDispatch } from "react-redux";

const LoginForm = () => {
  const dispatch = useDispatch();

  useEffect(() => {
    dispatch(initialize_form);
  }, [dispatch]);

  //인풋 변경 이벤트 핸들러
  const onChange = (e) => {
    const { value, name } = e.target;
    console.log(value);
    dispatch(
      change_field({
        form: "login",
        key: name,
        value,
      })
    );
  };

  return <AuthForm type="login" onChange={onChange}></AuthForm>;
};

export default LoginForm;

onChange 이벤트핸들러를 달아준다면 

input 의값을 넣었을때 dispatch 함수를 통해서 해당값들을 리덕스에 전역으로 값을 보관할수있다.

'FrontEnd > React' 카테고리의 다른 글

싱글 페이지 애플리케이션이란? SPA 란?  (0) 2024.04.01
[Android] webView 와 브릿지를 사용해 통신하는방법  (0) 2022.10.19
[리액트 회원인증 구현] 2. 회원가입과 로그인 구현 ( UI 제작 )  (0) 2022.07.18
[컴포넌트 제대로만들기] 1. React.memo  (0) 2022.07.18
[리액트 회원인증 구현] 1. 작업 환경 준비하기  (0) 2022.07.17
'FrontEnd/React' 카테고리의 다른 글
  • 싱글 페이지 애플리케이션이란? SPA 란?
  • [Android] webView 와 브릿지를 사용해 통신하는방법
  • [리액트 회원인증 구현] 2. 회원가입과 로그인 구현 ( UI 제작 )
  • [컴포넌트 제대로만들기] 1. React.memo
윤랩용
윤랩용
잘, 자연스럽게, 기분좋게
  • 윤랩용
    yunrap 개발블로그
    윤랩용
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 네트워크
        • HTTP
      • 언어
        • Html
        • CSS
        • JAVASCRIPT
        • JAVA
        • 개발용어
        • 코딩테스트
      • 알고리즘 N
      • 강의
      • BOOK
        • 모던 자바스크립트 Deep Dive
        • 인사이드 자바스크립트
      • Backend
        • 기능구현
        • Spring
      • FrontEnd
        • React
        • Javascript
        • CSS
        • [사이트프로젝트] 인스타 clone
        • 기능구현
      • 자기개발
      • 업무 TIL
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로미스체이닝
    var키워드
    tailwind 다크모드
    접근자프로퍼티
    즉시실행함수
    콜백패턴
    클로저 js
    __proto__
    dark:
    캡슐화
    빌트인객체 프로미스
    클로저
    함수프로그래밍
    물너비구현하기
    비동기요
    후속처리메서드
    시스템테마
    원시타입
    promise catch
    create react app
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
윤랩용
[리액트 회원인증 구현] 3. 회원가입과 로그인 구현 ( 리덕스 )
상단으로

티스토리툴바