인프런 - winterlood - 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
https://www.inflearn.com/course/한입-리액트/dashboard
1) Tripin 프로젝트에서의 사용을 위해
2) 프론트엔드에서 프레임워크를 어떤 방식으로 사용하여 개발하는지 경험
2022.04.30. ~
const add = (a, b) => a + b;
const sub = (a, b) => a - b;
module.exports = {
modulename: "calc module",
add: add,
sub: sub,
};
const calc = require("./calc");
console.log(calc.add(1, 2));
console.log(calc.add(3, 2));
console.log(calc.add(5, 2));
console.log(calc.add(4, 2));
import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
// import "./App.css";
import MyHeader from "./MyHeader";
import MyFooter from "./MyFooter";
function App() {
const style = {
App: {
backgroundColor: "black",
},
h2: {
color: "red",
},
bold_text: {
color: "green",
},
};
const number = 5;
return (
<div style={style.App}>
<MyHeader />
<h2 style={style.h2}>안녕 리액트</h2>
<b id="bold_text" style={style.bold_text}>
{number} 는 {number}
</b>
<MyFooter />
</div>
);
}
export default App;
const MyFooter = () => {
return <footer>myfooter</footer>;
};
export default MyFooter;
const MyHeader = () => {
return <header>헤더</header>;
};
export default MyHeader;
import React, { useState } from "react";
const Counter = () => {
const [count, setCount] = useState(0);
const onIncrease = () => {
setCount(count + 1);
};
const onDecrease = () => {
setCount(count - 1);
};
return (
<div>
<h2>{count}</h2>
<button onClick={onIncrease}>+</button>
<button onClick={onDecrease}>-</button>
</div>
);
};
export default Counter;
// import "./App.css";
import MyHeader from "./MyHeader";
import MyFooter from "./MyFooter";
import Counter from "./Counter";
function App() {
const number = 5;
return (
<div>
<MyHeader />
<Counter />
<MyFooter />
</div>
);
}
export default App;
const Container = ({ children }) => {
console.log(children);
return (
<div style={{ margin: 20, padding: 20, border: "1px solid gray" }}>
{children}
</div>
);
};
export default Container;
// import "./App.css";
import MyHeader from "./MyHeader";
import MyFooter from "./MyFooter";
import Counter from "./Counter";
import Container from "./Container";
function App() {
const counterProps = {
a: 1,
b: 2,
c: 3,
d: 4,
};
return (
<Container>
<div>
<MyHeader />
<Counter {...counterProps} />
<MyFooter />
</div>
</Container>
);
}
export default App;
import React, { useState } from "react";
import OddEvenResult from "./OddEvenResult";
const Counter = ({ initialValue }) => {
const [count, setCount] = useState(initialValue);
const onIncrease = () => {
setCount(count + 1);
};
const onDecrease = () => {
setCount(count - 1);
};
return (
<div>
<h2>{count}</h2>
<button onClick={onIncrease}>+</button>
<button onClick={onDecrease}>-</button>
<OddEvenResult count={count} />
</div>
);
};
Counter.defaultProps = {
initialValue: 0,
};
export default Counter;