728x90

프로젝트/영화 목록 (Netflix) 앱 14

영화목록 (Netflix) 앱 11.2 - 404 페이지

* 404 페이지 라우터 추가하기 import React from "react" import ReactDOM from "react-dom" import { BrowserRouter, Route, Routes } from "react-router-dom"; import { Register, Login, Home, Detail, Recommendation, NotFound } from 'pages' import './index.css' const App = () => { return ( ); }; ReactDOM.render( , document.getElementById("app")); index.js 파일을 위와 같이 수정하자! import { Register, Login, Home, Detail, Re..

영화목록 (Netflix) 앱 12 - 파이어베이스에 배포하기

* 파이어베이스 가입하기 파이어베이스 사이트 Firebase Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되는 Google의 모바일 플랫폼입니다. firebase.google.com 파이어베이스에 가입한 다음 콘솔로 이동한다. * 프로젝트 추가하기 프로젝트 추가 및 생성한다. * 웹앱에 파이어베이스를 추가하여 시작하기 - 앱 등록 웹 앱에 파이어베이스를 추가한다. (또한 이 앱의 Firebase 호스팅을 설정하세요 선택) * 파이어베이스 CLI 설치하기 npm install -g firebase-tools CMD 명령창에서 위 명령어를 입력한다. * 파이어베이스 로그인 하기 firebase login CMD 명령창에서 위 명령어를 입력한다. * 파이어베이스 프로젝트 초기..

영화목록 (Netflix) 앱 11 - 모달창 사용하기

* 모달창 컴포넌트 추가하기 components 폴더에 아래 파일을 추가한다. import React from 'react' import './Modal.css' function Modal({ open, children }){ return {children} } export default Modal; Modal.defaultProps = { open: false } Modal.js 파일을 위와 같이 작성하자! .Modal-container{ width: 100%; height: 100vh; background: black; /* opacity: 0.98; */ position: absolute; display: none; top: 0; left: 0; } .Modal { width: 500px; box-..

영화목록 (Netflix) 앱 10 - 페이지 접근제한 설정하기

* 사용자 정보 유무에 따른 페이지 접근제한 하기 - Home import React, { useState, useEffect } from 'react' import { Link, useNavigate } from 'react-router-dom' import { Movie, Loading, Input, Button, Menu } from 'components' import './Home.css' const Home = () => { // 사용자 정보 유무에 따른 페이지 접근 제한하기 const navigateToRegister = useNavigate() const user = JSON.parse(sessionStorage.getItem('user')) if(!user){ useEffect ( () =..

영화목록 (Netflix) 앱 9 - 홈화면에 영화목록 전체보기 기능 만들기

* 영화목록 전체보기 기능 구현하기 import React, { useState, useEffect } from 'react' import { Link, useNavigate } from 'react-router-dom' import { Movie, Loading, Input, Button, Menu } from 'components' import './Home.css' const Home = () => { const [loading, setLoading] = useState(true) const [movies, setMovies] = useState([]) const [query, setQuery] = useState('') const [isSorted, setIsSorted] = useState(-1..

영화목록 (Netflix) 앱 8 - 영화 목록에서 특정 영화 삭제하기

* 영화 삭제 구현하기 import React, { useState, useEffect } from 'react' import { Link, useNavigate } from 'react-router-dom' import { Movie, Loading, Input, Button, Menu } from 'components' import './Home.css' const Home = () => { const [loading, setLoading] = useState(true) const [movies, setMovies] = useState([]) const [query, setQuery] = useState('') const [isSorted, setIsSorted] = useState(-1) const..

영화목록 (Netflix) 앱 7 - 좋아요 기능 추가하기

* Movie 컴포넌트에 좋아요 속성 추가하기 import React from 'react' import './Movie.css' const Movie = ({ title, genres, cover, summary, year, rating, likes }) => { return ( {title} ({year}) {genres.join(" ")} {rating} / ❤️ {likes ? likes : 0} ) } export default Movie Movie.js 파일을 위와 같이 수정하자! likes 속성을 추가하고 화면에 렌더링한다. * 홈화면에 좋아요 업데이트 기능 추가하기 import React, { useState, useEffect } from 'react' import { Link, useN..

영화목록 (Netflix) 앱 6 - 영화 추천 페이지 만들기

* 영화 추천 페이지 라우트 추가하기 import React from "react" import ReactDOM from "react-dom" import { BrowserRouter, Route, Routes } from "react-router-dom" import { Register, Login, Home, Detail, Recommendation } from 'pages' import './index.css' const App = () => { return ( ); }; ReactDOM.render( , document.getElementById("app")); index.js 파일을 위와 같이 수정하자! import { Register, Login, Home, Detail, Recommendat..

영화목록 (Netflix) 앱 5 - 상세페이지 만들기

* 상세페이지 라우트 추가하기 import React from "react" import ReactDOM from "react-dom" import { BrowserRouter, Route, Routes } from "react-router-dom" import { Register, Login, Home, Detail } from 'pages' import './index.css' const App = () => { return ( ); }; ReactDOM.render( , document.getElementById("app")); index.js 파일을 위와 같이 수정하자! import { Register, Login, Home, Detail } from 'pages' Detail 페이지 컴포넌트를 ..

영화목록 (netflix) 앱 번외편 - 사용자 정보 유효성 검증

import React, { useState } from 'react' import { useNavigate } from 'react-router-dom' import { Input, Button } from 'components' import './Register.css' const Register = () => { const [id, setId] = useState('') const [password, setPassword] = useState('') const navigate = useNavigate() const handleChange = (e) => { const { name, value } = e.target name === 'id'? setId(value) : setPassword(value..

728x90