본문 바로가기

응용SW 개발 (React)/필기일지

231025 [응용SW개발] - 컴포넌트 component / 외부 컴포넌트 사이트 (디자인요소) / API

반응형

[23.10.25] 57일차

 

<<진도>>

[DB 연동 응용SW 개발]

- 컴포넌트 component

- 외부 컴포넌트 사이트 (디자인요소)

- API

 

<<과제>>

- NavBar : 메뉴정리

- movie DB 회원가입

- JS : 비동기처리   

 

<<오늘의 팁>>

- 필요없는 코드는 정리하기

- 사용 안하는 요소 제거 단축키 alt + shift + o

 

- 컴포넌트 개념

antdesign = > 리액트에 디자인적 컴포넌트를 제공

package.json에도 설치가 되어 컴포넌트로 사용가능

 

movie – client - view에서 작업

 

** 다양한 디자인요소들(버튼, 아이콘, 레이아웃, 메뉴 등) JavaScript 가져와 사용가능

 

cf) App의 타입을 : ~~ 로 나타내는 형식 왼쪽 TypeScript

 

 

 

 

* 경로 나타내는 ‘Breadcrumb’

 

* 아이콘 설치

 

설치 시

dependencies에 추가됨

 

 

 

*** content의 높이 설정

 

 <div style={{ minHeight: '100vh' /*최소 높이: vh(viewport height)*/ }}>

 

 

‘100 vh’ : content 디스플레이에서 보이는 최대치 (header footer는제외)

 

 

 

- 연산도 가능

 

<div style={{ minHeight: 'calc(100vh - 100px)' }}>

 

=====================================================================

 

*** landing page : 검색 엔진, 광고 등을 경유하여 접속하는 이용자가 최초로 보게 되는 웹페이지

=> 이용자의 행동을 유도하는 특정한 의도와 목적을 가지는 경우가 많음.

 

컴포넌트 스니펫(snippet)(자동완성 패키지)

확장 이용

컴포넌트

‘rfce’ (react functional export component)

 

 

import React from 'react'

 

function LandingPage() {

  return (

    <div>

     

    </div>

  )

}

 

export default LandingPage

 

기본 형태 스니펫

 

* react icon (github)

https://react-icons.github.io/react-icons/

 

여러 지원 사이트들의 아이콘을 모아놓음.

icons 설치 후

/ PS D:\fullstack\front\p231024\movie\client> yarn add react_icons /

랜딩페이지에 import

 

import React from 'react'

import { IoAperture } from "react-icons/io5";

 

function LandingPage() {

  return (

    <div>

      <IoAperture style={{ fontSize: '4rem' }}/>

    </div>

  )

}

 

export default LandingPage

 

 

: icon 들은 모두 폰트 font로 조정

 

 

* index 페이지는 가장 최상위 메인 페이지 = > / 가 붙음.

: landing페이지가 index페이지일 수 있으나,

index페이지가 반드시 landing 페이지는 아니다.

 

**

"react-router-dom": "^6.17.0",

router

: 요청이 들어온 URI(경로)에 대한 페이지를 전송해주는 역할.

: server쪽에서 처리 필요

 

** 페이지 이동이 있을 때 header / footer는 고정이고 content만 바뀌게

Router를 통해 특정 페이지 연결시키는 예

import NavBar from "./view/NavBar/NavBar";

import Footer from "./view/Footer/Footer";

import LandingPage from "./view/LandingPage/LandingPage";

import Items from "./view/Items/Items";

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

 

function App() {

  return (

    <div className="App">

      <NavBar />

      <div style={{ minHeight: 'calc(100vh - 80px)' }}>

        <Router>

          <Routes>

            {/* 요청된 경로로 페이지 이동 : 특정 컴포넌트 실행 */}

             <Route path="/" element={<LandingPage />} />

             <Route path="/Items" element={<Items />} />

          </Routes>

        </Router>

    </div>

      <Footer />

    </div>

  );

}

 

export default App;

 

 

“/” : 최상위 페이지 <LandingPage /> 컴포넌트 실행

“/Items” : <Item /> 컴포넌트 실행

 

====================================================================

** react element 문법상 하나로 개체로 묶여 있어야하는데

<>  </>

형태로도 쓰기도 한다.

 

open API = 인증이 된 사람은 누구나 쓸 수 있는 공개 정보서버

 

 

TMDB API 관련 URL

URL의 ? 뒤는 queryparameter 쿼리파라미터

반응형