Hazel Han
Midnight In Coding
Hazel Han
전체 방문자
오늘
어제
  • 분류 전체보기 (46)
    • Back-end (6)
      • java (0)
      • spring frameworks (6)
      • spring boot (0)
    • Front-end (29)
      • React (7)
      • Javascript (0)
      • html (7)
      • css (15)
    • DB (0)
    • Algorithms (2)
    • 회고록 (9)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 개발자
  • springframeworks
  • Spring
  • 스프링프레임워크
  • 스프링
  • 회고록
  • justcode
  • 코딩
  • 자바의정석
  • 리액트
  • css
  • 프로그래밍
  • HTML
  • coding
  • 저스트코드
  • 자바
  • 기술블로그
  • Java
  • React
  • 남궁성

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Hazel Han

Midnight In Coding

Front-end/React

[JUSTCODE] Basic Foundation - React Router, Saas

2022. 10. 20. 23:09

SPA(Single Page Application)

리액트 프로젝트에서 html의 파일 수는 한 개이다.

SPA는 페이지가 한 개인 어플리케이션을 의미한다.

 

Router

위에서 설명한 SPA로 여러 페이지를 보여줄 수 있도록 사용하는 것.

React 자체에는 이런 기능이 없기 때문에 Framework이 아니라 Library로 분류된다.

 

설치방법

npm install react-router-dom --save

 

컴포넌트 구현 방법

import React from "react";
import { BrowserRouter, Routes, Route } from "react-router-dom";

import Nav from "./components/Nav/Nav";
import Footer from "./components/Footer/Footer";
import Login from "./pages/Login/Login";
import Signup from "./pages/Signup/Signup";
import Main from "./pages/Main/Main";

function Router() {
  return (
    <BrowserRouter>
      <Nav />
      <Routes>
        <Route path="/" element={<Login />} />
        <Route path="/signup" element={<Signup />} />
        <Route path="/main" element={<Main />} />
      </Routes>
      <Footer />
    </BrowserRouter>
  );
}

export default Router;

라우터를 사용하기 위해서는 index.js의 default 컴포넌트 <App/> 대신에 <Router />를 써줘야한다.

 

이동

Route의 이동방법은 <Link/>와 useNavigate 두 가지가 있다.

 

<Link/>

import React from "react";
import { Link } from "react-router-dom";

function Login() {
  return (
    <div>
      <Link to="/main">메인</Link>
    </div>
  );
}

export default Login;

지정한 경로로 바로 이동할 수 있도록 한다.

<a> 태그와의 차이는 <a>태그는 외부 링크로 이동하지만, <Link/>태그는  내부 페이지로 이동한다는 것이다.

 

useNavigate

import React from "react";
import { useNavigate } from "react-router-dom";

function Login() {
  const navigate = useNavigate();

  const goMain = () => {
    navigate("/main");
  };

  // 실제 활용 예시
  // const goMain = () => {
  //   if(response.message === "valid user"){
  //     navigate('/main');
  //   } else {
  //     alert("가입된 회원이 아닙니다. 회원가입을 먼저 해주세요.")
  //     navigate('/signup');
  //   }
  // }

  return (
    <div>
      <button className="loginBtn" onClick={goMain}>
        로그인
      </button>
    </div>
  );
}

export default Login;

Hooks를 통해서 페이지를 이동할 수 있다.

보통 이동하기 전, 어떠한 로직을 처리하여야 하는 경우 사용한다.

 

Sass

css를 보다 효율적으로 다루기 위해 만들어진 스타일 시트, Syntactically Awesome Style Sheets.

 

설치방법

npm install sass --save

 

설치 후, Sass를 사용하려면 .css 파일을 .scss로 변경해야한다. 

 

Nesting

css의 상위 요소안에 하위 요소를 적용하는 방법

nav {
  ul {
    margin: 0;
    padding: 0;
    list-style: none;
		li {
			display: inline-block;
		}
  }

  a {
    display: block;
    padding: 6px 12px;
    text-decoration: none;
  }
}

상위 요소와의 스타일 적용의 중첩을 피할 수 있다.

 

mixin

$theme-color: light-blue;
$border-style: 1px black solid;

@mixin flex-center {
	display: flex;
	justify-content: center;
  align-items: center
}

login-container {
  @include flex-center;

	button {
	  width: 200px;
		height: 100px;
		background-color: $theme-color;

		&:hover {
			background-color: red;
			cursor: pointer;
		}
	}

	input {
		background-color: $theme-color;

		&:focus {
		  background-color: red;
		}
	}
}

 

이 외에도 Sass에는 다양한 문법이 존재하며, 아래 Sass 공식 홈페이지에서 확인할 수 있다.

https://sass-lang.com/

저작자표시 (새창열림)

'Front-end > React' 카테고리의 다른 글

[JUSTCODE] Advanced Foundation - React 재사용 컴포넌트  (0) 2022.10.29
[JUSTCODE] Advanced Foundation - React (리)렌더링, 조건부 렌더링  (0) 2022.10.29
[JUSTCODE] Basic Foundation - React useEffect  (0) 2022.10.24
[JUSTCODE] Basic Foundation - React useState, props  (0) 2022.10.24
[JUSTCODE] Basic Foundation - React CRA, Component, JSX  (0) 2022.10.20
    'Front-end/React' 카테고리의 다른 글
    • [JUSTCODE] Advanced Foundation - React (리)렌더링, 조건부 렌더링
    • [JUSTCODE] Basic Foundation - React useEffect
    • [JUSTCODE] Basic Foundation - React useState, props
    • [JUSTCODE] Basic Foundation - React CRA, Component, JSX
    Hazel Han
    Hazel Han

    티스토리툴바