융융이'Blog

SPA 페이지 구현(1)(react-router-dom, NODE_PATH, BrowserRouter,Route,Query-String) 본문

2022이전/React

SPA 페이지 구현(1)(react-router-dom, NODE_PATH, BrowserRouter,Route,Query-String)

바로퇴장 2020. 1. 28. 12:18

react-router-dom

리액트 경로 설정을 도와주는 패키지입니다.

NODE_PATH 설정

import의 경로 설정을 절대경로로 변경을 해준다.

package.json

  "scripts": {
    "start": "NODE_PATH=src react-scripts start",
    "build": "NODE_PATH=src react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },

BrowserRouter

BrowserRouter는 HTML5의 history API를 사용하여 새로고침하지 않고도 페이지 주소를 교체할 수 있게 합니다.

import React from 'react';
import { BrowserRouter} from 'react-router-dom';
import App from './App';

const Root = () => {
  return (
    <BrowserRouter>
      <App/>
    </BrowserRouter>
  )
}

export default Root;

Route

Route는 페이지 주소를 설정할 때 사용합니다.

App.js

import React from 'react';
import { Route } from 'react-router-dom';
import { Home, About } from 'pages';

const App = () => {
  return(
    <div>
      <Route exact path="/" component={Home}/>
      <Route path="/about/:name?" component={About}/>
    </div>
  )
}
export default App;

exact는 '/'정확히 일치할 때만 보여주도록 설정해주는 것이다.

component는 보여줄 component를 정해주는것입니다.

:name? 에서의 ?는 값은 선택적으로 받게끔 설정해주는 것입니다.

Query String

http://localhost:3000/about/park?key="value"&Key2="value2"와 같은 형식에서 key value값들을 가져올 수 있도록 도와주는 라이브러리입니다.

import React from 'react';
import queryString from 'query-string';
const About = ({location, match}) => {
  const query = queryString.parse(location.search);
  console.log(query);
  ...

  //{Key2: ""value2"", key: ""value""}