일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 리액트 무한스크롤
- React-qurey
- 리액트쿼리 무한스크롤
- 리액트 사진크기
- 전역상태관리
- react native navigation
- 리액트 네이티브 네비게이션
- 무한스크롤
- 자바스크립트
- 부트캠프항해
- 네이티브 css
- React Native
- ui로직
- JavaScript
- react-native
- 리액트네이티브 검색
- 리액트쿼리
- 비지니스로직
- 리액트 네이티브 map
- FlatList
- 프론트엔드 개발블로그
- 플랫리스트
- 리액트 네이티브 캐러셀
- react native routes
- 리액트
- HTML
- react
- expo-location
- 리액트 네이티브
- 리액트네이티브 라우트
- Today
- Total
솧디의 개발로그
React(리액트) 컴포넌트, JSX란!? 본문
컴포넌트란?
리액트에서 사용하는 기본단위라고 생각하면된다. 이 컴포넌트들이 모여 하나의 페이지가 되는것이다.
function App()
const a = [1,2,3,4,5]
return (
<div> {a}</div>
);
}
기본적인 형태는 함수의 형태이다. 즉 컴포넌트는 함수이다.
기존에 자바스크립트에서는 html따로 작성하고 js를 적용시켰다면 컴포넌트에선
자바스크립트와 html를 한번에 할 수 가있다.
컴포넌트 사용방법
함수의 형태에서 변수나, 값들을 정해주고 return을 통해 결과값을 HTML로 화면에 나타낼 수 있다.
const App = () => {
const users = [
{ id: 1, age: 30, name: "송중기" },
{ id: 2, age: 24, name: "송강" },
{ id: 3, age: 21, name: "김유정" },
{ id: 4, age: 29, name: "구교환" },
];
return (
<div className = "style">
{users.map((user) => {
if (user.age < 25) {
return <Users user={user} key={user.id} />;
} else {
return null;
}
})}
</div>
);
}
export default App;
컴포넌트는 함수이기 때문에 화살표함수로도 쓸 수있다.
코드스니펫을 보면 리턴을 기준으로 리턴 위에서는 자바스크립트 코드를 작성되어있고, 리턴 아래로는 html로 구성되어있다.
정확히는 html이 아니라 JSX문법이다.
컴포넌트의 이름의 첫 글자는 대문자로 만들어야한다!
JSX문법이란?
jsx는 리액트에서만 사용하는 html 문법이다. html이랑 생긴건 비슷하고 거의 똑같다 볼 수 있다.
자주사용하는 jsx문법이나 사용법에 대해 알아보자!
function App()
const a = [1,2,3,4,5]
return (
<div>
<div>
<P>안녕하세요.</P>
<div/>
<div>
<P>반갑습니다.</P>
<div/>
</div>
);
}
div태그 넣어 코딩하는것은 같지만 한개이상의 엘리먼트, 즉 태그가 들어갈수없다. 태그안에 태그가 묶여진 형태로 작성해야한다.
input태그처럼 닫는 태그가없는 경우에는 뒤에 '/'를 추가해야한다.
<input type='text' />
아예 태그 명칭이 달라지는 것도 있는데, 대표적으로 class이며 jsx에서는 clssName으로 사용한다.
<div class="이름"></div> // 기존 자바스크립트에서 class사용
<div className="이름"></div>//jsx문법으로 class사용
그리고 자바스크립트를 가져올때는 {중괄호}를 이용해서 값을 가져온다. 또한 자바스크립트 문법을 바로 jsx에서 사용할 수 있는데
이 경우에도 {}를 사용한다.
import React from 'react';
import logo from './logo.svg';
import './App.css';
function App() {
const number = 1;
return (
<div className="App">
<p>안녕하세요! 리액트 반입니다 :)</p>
{/* JSX 내에서 코드 주석은 이렇게 씁니다 :) */}
{/* 삼항 연산자를 사용했어요 */}
<p>{number > 10 ? number+'은 10보다 크다': number+'은 10보다 작다'}</p>
</div>
);
}
'React 리액트' 카테고리의 다른 글
라이프사이클(클래스형 vs 함수형), react hooks (0) | 2022.10.17 |
---|---|
React DOM이란? 가상돔이 나오게된 이유! 서버리스 (0) | 2022.10.09 |