React는 Facebook에서 개발한 JavaScript 기반의 프론트엔드 라이브러리입니다.
React를 사용하면 동적인 사용자 인터페이스를 만들 수 있으며, 가상 DOM을 사용하여 웹 애플리케이션의 성능을 최적화할 수 있습니다. React는 컴포넌트 기반으로 작동하며, 컴포넌트는 UI 요소를 렌더링하고 상태를 관리하는 자체적인 기능 단위입니다. 이러한 컴포넌트는 더 큰 애플리케이션을 작고 재사용 가능한 단위로 분할하여 작성할 수 있으므로 코드의 유지 보수성과 재사용성이 향상됩니다.
Node.js와 npm이 설치되어 있는지 확인하세요.이를 확인하려면 터미널 또는 명령 프롬프트에서 다음 명령어를 입력하세요.
Compiled successfully!
You can now view react1 in the browser.
Local: http://localhost:3000
On Your Network: http://192.168.0.140:3000
Note that the development build is not optimized.
To create a production build, use npm run build.
webpack compiled successfully
"dependencies": {
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"axios": "^1.4.0",
"gsap": "^3.11.5",
"prop-types": "^15.8.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.11.2",
"react-scripts": "5.0.1",
"sass": "^1.62.1",
"web-vitals": "^2.1.4"
},
Vue CLI v5.0.8
? Please pick a preset: Manually select features
? Check the features needed for your project: Babel, Router, Vuex, CSS Pre-processors, Linter
? Choose a version of Vue.js that you want to start the project with 3.x
? Use history mode for router? (Requires proper server setup for index fallback in production) Yes
? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): Sass/SCSS (with dart-sass)
? Pick a linter / formatter config: Standard
? Pick additional lint features: Lint on save
? Where do you prefer placing config for Babel, ESLint, etc.? In dedicated config files
? Save this as a preset for future projects? No
import React from "react";
import ReactDOM from "react-dom/client";
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<h1>Hello World</h1>);
//Hello World
JSX는 JavaScript와 XML의 확장 문법으로, React에서 UI를 구성할 때 사용됩니다. JSX는 마크업과 JavaScript 코드를 결합해 코드의 가독성과 유지 보수성을 높여주며, React 엘리먼트를 생성하는 데에도 사용됩니다.
import React from "react";
import ReactDOM from "react-dom/client";
const name = "Yeo Da Seul";
const hello = <h1>hello {name}</h1>;
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(hello);
//hello Yeo Da Seul
객체와 함수를 같이 사용한 경우
import React from "react";
import ReactDOM from "react-dom/client";
function helloName(){
return name.nick;
}
const name = {
nick: "JJUL",
}
const hello = <h1>Hello, {helloName()}</h1>;
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(hello);
//hello JJUL
import React from 'react';
import ReactDOM from 'react-dom';
// function clock(){
// let clock = document.getElementById("clock");
// setInterval(function(){
// clock.innerHTML = new Date().toLocaleDateString();
// }, 1000);
// }
// clock();
function clock(){
const element = (
<div>
<div>hello, jjul</div>
<h2>지금은 {new Date().toLocaleDateString()}입니다. </h2>
</div>
);
ReactDOM.render(element, document.getElementById('root'))
}
export default clock;
import React from 'react';
import ReactDOM from 'react-dom';
function Hello() {
return <h1>Hello, YDS</h1>
}
const element = <Hello />;
ReactDOM.render(element, document.getElementById("root"));
export default Hello;
// Hello, YDS
import React from "react";
import ReactDOM from "react-dom/client";
function Welcome(props){
return <h1>Hello, {props.name}</h1>
}
function App(){
return (
<div>
<Welcome name = "YDS"/>
<Welcome name = "Yeo Da Seul"/>
<Welcome name = "JJUL"/>
</div>
)
}
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);
import React from "react";
import ReactDOM from "react-dom/client";
function formatDate(date){
return date.toLocaleDateString();
}
function Comment(props){
return (
<div>
<div>{formatDate(props.date)}</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
)
}
const comment = {
date: new Date(),
}
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Comment date={comment.date}/>);
import React from "react";
import ReactDOM from "react-dom/client";
function Hello(props){
return (
<div>
<div><h1>{props.title1}</h1></div>
<div><h1>{props.title2}</h1></div>
<div><h1>{props.title3}</h1></div>
<div><h1>{props.title4}</h1></div>
</div>
)
}
const name = {
name: "YDS",
text: "오늘의 점심은 쌀국수",
author: {
name: "해피반미",
url: "JMT"
}
}
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Hello title1={name.name} title2={name.text} title3={name.author.name} title4={name.author.url}/>);
import React from "react";
import ReactDOM from "react-dom/client";
function Hello(props){
return <h1>Hello, {props.name}</h1>
}
const element = <Hello name = "YDS"/>;
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(element);
// Hello, YDS