[React] Redux
·
개발/React
1. 리덕스란? 리액트에서 사용할수 있는 하나의 라이브러리이다. 라이브러리라는건 없어도 리액트로 작엄물을 만들수 있지만 편하게 작업하려고 쓰는것이다. 실무에서 리덕스를 안쓰면 매우 불편하기 때문에 필수로 사용한다. 리액트는 자식 컴포넌트에 props로 전달은 가능한데 다른 컴포넌트에서 직접 데이터 공유가 불가능하다. 그래서 공유해야할 데이터를 공유받는 자식 컴포넌트들의 공통부모에서 State를 만들어서 자식 컴포넌트에게 전달한다. 리액트는 데이터 흐름이 단방향이기 때문에 이러한 작업이 필요하다. 그래서 작업을 하다보면 부모 컴포넌트에 무척 많은 props가 생기는데 이런 단점을 보완하기 위해서 리덕스를 사용한다. 리덕스는 state를 저장해주는 store(저장소) 각각의 컴포넌트가 어느 컴포넌트던 사용할..
[React] 게시판 만들기
·
개발/React
GitHub - TeTedo/react_project Contribute to TeTedo/react_project development by creating an account on GitHub. github.com 리액트로 백앤드를 쓰지 않고 useState함수를 사용하여 게시판을 만들어봤다. 1. 로그인 기능 user라는 배열안에 배열 형태로 정보들을 넣어놨고 회원가입을 할때에 useState 로 user의 배열에 새로운 user값들을 추가해줬다. 로그인을 했을때 login = true로 설정하고 loginUser에도 해당 로그인한 아이디를 넣어줬다. 2. 로그아웃 기능 loginUser로 로그인을 했을때 현재 로그인되어있는 아이디를 받아온다. loginUser를 빈값으로 만들어주고 login을 f..
[React] 라우터 사용
·
개발/React
1. React에서 router사용하기 리액트는 페이지가 하나인데 어떻게 여러개의 페이지를 보여줘야 할까? 페이지도 컴포넌트, 하위 컴포넌트들을 모아서 페이지의 형태로 구성을 하고 페이지 컴포넌트를 url의 경로에 맞춰서 보여주면 된다. 한페이지에 내용이 교체되면서 페이지가 이동된것처럼 보여주는 것이다. 리액트는 새로고침되지 않는 어플리케이션이기 때문에 리액트의 페이지 이동은 눈속임이다. 리액트 라우터 라이브러리가 해주는일 : url이 바뀔때 컴포넌트를 바꿔줌 router 설치 https://reactrouter.com/en/v6.3.0#welcome-to-react-router Docs Home v6.3.0 Official assets for things like articles and video tu..
[React] 가위바위보 만들기
·
개발/React
1. App.js import "./App.css"; import { img01, img02, img03, img04, img05, img06 } from "./img"; import Block from "./Block"; import { useEffect, useState } from "react"; function App() { const select = { scissors: { name: "가위", img: img03, }, rock: { name: "바위", img: img02, }, paper: { name: "보", img: img01, }, }; const [userSelect, setUserSelect] = useState(null); const [comSelect, setComSelect..
[React] 함수형 useEffect
·
개발/React
1. 예시 코드 import React, { useEffect, useState } from "react"; const BlockFn = () => { const [num, setNum] = useState(0); const [num2, setNum2] = useState(0); useEffect(() => { console.log("componentDidMount"); }, []); useEffect(() => { console.log(num); console.log("componentDidMount"); }, [num, num2]); const add = () => { setNum(num + 1); console.log(num); }; return ( 증가 ); }; export default Blo..
[React] 클래스형 컴포넌트
·
개발/React
1. 클래스형 컴포넌트 export default class BlockClass extends Component { constructor(props) { super(props); this.state = { num: 0, name: "하이", }; console.log("constructor"); } componentDidMount() { console.log("componentDidMount"); } componentDidUpdate() { console.log(this.state); console.log("componentDidUpdate"); } add = () => { this.setState({ num: this.state.num + 1 }); console.log(this.state); }; r..