14-1. 유저 라우트 만들기

리액트 라우터에서 /@username 경로로 들어오게 되었을 때, 유저 페이지를 띄워주도록 설정을 하겠습니다.

먼저, 유저 페이지를 정의하세요.

src/pages/User.js

import React, { Component } from 'react';
import PageWrapper from 'components/Base/PageWrapper';

class User extends Component {
    render() {
        const { match } = this.props;
        const { username } = match.params;

        return (
            <PageWrapper>
                {username}
            </PageWrapper>
        );
    }
}

export default User;

username 값을, match.params 에서 받아와서 렌더링을 해주었습니다.

컴포넌트를 만든 다음에는 pages 인덱스에 추가하세요.

src/pages/index.js

export { default as Home } from './Home';
export { default as Auth } from './Auth';
export { default as User } from './User';

이제 App 컴포넌트에서 라우트를 정의해주면 됩니다.

src/App.js

import React, { Component } from 'react';
import { Route } from 'react-router-dom';
import { Home, Auth, User } from 'pages';
(...)

class App extends Component {
    (...)

    render() {
        return (
            <div>
                <HeaderContainer/>
                <Route exact path="/" component={Home}/>
                <Route path="/auth" component={Auth}/>
                <Route path="/@:username" component={User}/>
                <ToastContainer style={{zIndex: 20}} hideProgressBar={true} position="bottom-right"/>
            </div>
        );
    }
}

(...)

위와 같이, path 를 설정하는 부분에서 @ 문자가 들어가도 전혀 상관이없습니다.

파일을 저장한다음에, http://localhost:3000/@velopert 이런식으로 주소뒤에 @아이디를 붙여서 페이지에 접속을 해보세요.

results matching ""

    No results matching ""