localhost = 본인 IP주소 = 127.0.0.1:3000;
localhost:3000
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"dev": "react-scripts start"
},
사용이유?
<LoginForm>
...
<LoginForm/>
const LoginForm = styled.div`
...css 속성
`
그외의 방법
SASS > SCSS
const LoginForm = css`
..css 속성
`
🔥 보통의 라이브러리들은 시간이 지나면 사용법이 바뀌거나 프로젝트에
적응이 안되는 경우가 많이 있다.
단, 완전히 대체되는 경우가 존재.
ex)
변수를 전역으로 관리할 수 있는 라이브러리
contextAPI/useReducer -> redux => mobx -> recoil/React.Query
조건부 랜더링 방식에 사용된다.
(조건에 충족할 경우 해당 부분을 리랜더)
{조건식 ? true인 경우 : false인 경우}
{조건식 && true인 경우} = {조건식 ? true인경우 : null}
{}, 빈 배열 = 값이 있는걸로 쳐진다.
배열일 때 (console.log 를 찍어보면 "null", "undefined" 가 아닌 빈배열출력)
{조건식.length > 0 && true인 경우}
조건식의 맞는 배열의 값에 객체 형태나 배열의 형태로 오면 안이 비어있어도 null, undefined 가 찍히는게 아니라 빈 객체 , 빈배열이 출력된다. "값"이 없어도 "값"이 있다고 인식하기 때문에
배열일때는 조건식의 배열 길이가 " > 0 보다 큰지" 에 따라서 삼항연산자나, && 연산자를 사용한다.
const { 객체내 키 값 } = 객체명;
-> 객체명에서 key 값을 찾고 , 객체의 value 를 키값에 넣어준다.
ex)
const fruits = {
apple:"사과",
banana: "바나나",
orange: "오렌지"
}
console.log(fruits);
// { apple: '사과', banana: '바나나', orange: '오렌지' } 출력
console.log(fruits.apple);
// 이렇게 하위 선택자로도 많이 사용한다.
** 다른 방법
const {apple} = fruits;
// 이렇게 키 값으로 찾을수도 있다. 결과 "사과"가 출력된다.
📍 배열을 키 값이 아닌, 인덱스 순서로 값을 받아올 수 있음.
ex)
const fruits = ["딸기","포도","복숭아"];
console.log(user[0]); // 딸기 출력
// 하지만 , 인덱스 번호에 값에 맞게끔 순서대로 변수안에 값을 넣을수 있다.
ex)
const [strawberry, graps, peach] = fruits;
console.log(strawberry); // 딸기 출력
const cat = {
name:'해리',
age: 10,
weight: 10
}
const desCat = (name, age, weight) => {
console.log('우리집 고양이의 이름은 ${name}입니다. 그리고 나이는 ${age}살 이고 무게는 ${weight}kg 입니다')
}
// 출력
우리집 고양이의 이름은 해리입니다. 그리고 나이는 10살 이고 무게는 10kg 입니다
** 다른 방법 (cat) 으로만 전달하고 싶을때
const desCat = ({name, age, weight}) => {
console.log('우리집 고양이의 이름은 ${name}입니다. 그리고 나이는 ${age}살 이고 무게는 ${weight}kg 입니다')
}
desCat(cat);
-> 매개 변수로 객체를 전달했고
함수의 정의문에서 {} 를 사용하여 해당 객체의 키값의 value를 가지고 올수 있다.