애니리뷰
고급컴퓨터학현장실습대비 1) 리액트 2강
두원공대88학번뚜뚜
2022. 10. 18. 20:59
import logo from './logo.svg';
import './App.css';
// JSX(html같은거 - 이후 js로 변환됨)
/*
예시 - function App() {
return (
<div>
Hello <b>react</b>
</div>
);
}
의 경우,
function App() {
return React.createElement("div", null, "Hello", React.createElement("b", null, "react"));
}
로 변환됨.
보면 알 수 있듯, div Element 하나에 b형 Element가 들어가는 것을 알 수 있다. 이런 식으로 계층을 구성하는듯?
*/
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
export default App;
위가 기본형임. 여기서,
const 변수를 통해서 사용해보겠다. 변수는 {변수명}을 통해 사용 가능.
function App() {
const name = '리액트';
return (
<>
<h1> {name} 안녕 ! </h1>
<h2> 잘 작동하니? </h2>
</>
);
}
export default App;
다음으로 조건부 연산자다.
name === ' 리액트'라면, && 뒤의 것을 실행
//조건부 연산자 : name === '리액트'라면 && 뒤의 것을 실행
function App() {
const name = "뤼액트"
return <div> {name === '리액트' && <h1> 리액트입니다. </h1>} </div>;
}
export default App;
리액트 컴포넌트에선, 함수에서 undefined만 반환해서 렌더링하면, 오류가 발생한다.
예시
function App() {
const name = undefined;
return name;
//대체안
return name || '값이 undefined 입니다.';
//jsx 내부에서 undefined를 렌더링한 예
return <div>{name}</div>;
//name 값이 undefined일 때, 보여주고픈 문구가 있다면
return <div>{name || '리액트'}</div>;
}
export default App;
따라서, 대체안을 통해 수정해야 한다.
그러나, name값이 undefined일 때 렌더링 하는 것은 괜찮으며,
마지막은 undefined일 때 보여주고픈 문구가 있다면 사용한다.
리액트에서 DOM요소에 스타일을 적용할 때는, 문자열 형태가 아니라 객체 형태로 넣는다.
아래는, 검은배경에 하늘색글자로 리액트를 작성하는 형태.
function App() {
const name = '리액트';
const style = {
backgroundColor : 'black',
color : 'aqua',
fontSize : '48px',
fontWeight : 'bold',
padding : 16
};
return <div style = {style}>{name} </div>;
};
이를 style을 따로 지정하지 않고,
return (
<div
style = {{
backgroundColor : ...
...
}}
>
{name}
</div>
);
처럼 표기 가능.
일반 HTML에서는 CSS클래스를 사용할 땐, <div class = "myclass"></div>와 같이 class란 속성을 설정한다.
그러나 jsx에서는 className으로 설정함.
아래의 과정을 거쳐보면,
1. src 디렉토리 안의 App.css에서 내부를 다 지우고, 새 css클래스를 작성
.react {
background : 'aqua';
color : 'black';
font-size : 48px;
font-weight : bold;
padding : 16px;
}
이는 기존 App컴포넌트에서 인라인 스타일에 사용한 폰트갯과 배경색을 뒤바꿨다.
2. App.js파일에서 App.css를 불러온 뒤, div요소에 className값을 지정한다.
function App() {
const name = '리액트';
return <div className = "react">{name}</div>;
}
이렇게 하면,글씨가 짙은 검정으로, 배경은 aqua색으로 default가 되는 걸 볼 수 있다.
<input>은 반드시 닫자.