ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • React로 블로그 만들기 #7
    2018~2019/React.js 2018. 11. 1. 17:52

    React로 블로그 만들기 #7

     - 로그인 구현(4) HOC -


    1. HOC (Higher Order Component)

    - 리액트 컴포넌트를 인자로 받아서 새로운 리액트 컴포넌트를 리턴하는 함수이다.

    - 비즈니스를 담당하는 컴포넌트와 뷰를 담당하는 컴포넌트를 분리할 때 사용함

    - 그 외에도 SPA에서 로딩 중 화면 표시 또는 유저 인증 로직 처리, 에러 메시지 표시 등 다양한 방법으로 사용됨.

    - 여기서는 유저 인증 로직 처리를 하기 위해 사용함. => 로그인 했을 때만 들어갈 수 있는 페이지(내 글보기, 마이페이지)를 위해 HOC 적용.


    1) src/Components/LoginHOC.js 생성

    - Store에 저장된 logged 상태에 따라 로그인 했을 때는 내 글보기, 마이페이지를 로그인을 하지 않았을 때는 로그인 페이지를 보여줌.


    import React, { Component } from 'react';
    import Store from '../Store/store';
    import LoginContainer from './LoginContainer';

    const withLogin = (WrappedComponent) =>
    class IsLogin extends Component {
    render() {
    return (
    <Store.Consumer>
    { store => {
    if(store.logged === false)
    return <LoginContainer />;
    else
    return <WrappedComponent />;
    }}
    </Store.Consumer>
    );
    }
    };

    export default withLogin;

    2) src/Components/Myboard.js, MyPage.js

    - 위에서 만든 로그인 HOC를 적용함


    import React, { Component } from 'react';
    import styled from 'styled-components';
    import withLogin from './LoginHOC';

    class MyBoard extends Component {
    render() {
    return (
    <div>
    내 글보기
    </div>
    );
    }
    }

    export default withLogin(MyBoard);


    import React, { Component } from 'react';
    import styled from 'styled-components';
    import withLogin from './LoginHOC';

    class MyPage extends Component {
    render() {
    return (
    <div>
    MyPage
    </div>
    );
    }
    }

    export default withLogin(MyPage);


    '2018~2019 > React.js' 카테고리의 다른 글

    React로 블로그 만들기 #9  (2) 2018.11.05
    React로 블로그 만들기 #8  (2) 2018.11.04
    React로 블로그 만들기 #6  (5) 2018.10.30
    React로 블로그 만들기 #5  (3) 2018.10.29
    React로 블로그 만들기 #4  (1) 2018.10.26
Designed by Tistory.