-
React로 블로그 만들기 #72018~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 />;elsereturn <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