REST API
람다식
메소드 참조
Function<Integer, MyClass> f = (i) -> new MyClass(i);
// 람다식Function<Integer, MyClass> f = MyClass::new;
// 메서드 참조 @RequestParam
메소드의 인자값으로 @RequestParam() 어노테이션을 넣어서 값을 받아온다.
@RequestParam("가져올 데이터의 이름") [데이터타입] [가져온데이터를 담을 변수]
위와 같은 형식으로 사용한다.
출처: https://hongku.tistory.com/119 [IT에 취.하.개.:티스토리]
// 1. getProductsByCategory 메소드 : 매개 변수 있음
return category.map((e) -> productService.getProductsByCategory(e)).orElse(productService.getAllProducts());
// 메소드 참조식으로 변환
return category.map(productService::getProductsByCategory).orElse(productService.getAllProducts());
// 2. getProductsByCategory 메소드 : 매개 변수 없음
return productService.getAllProducts();
CORS지원 방식 : 서버단 config 에서 처리
npx
package.json
flow
react
함수로 product list 리액트 컴포넌트 생성
Summary 컴포넌트 생성
<React.Fragment><React.Fragment/>
는 <></>
으로도 표현 가능Product 컴포넌트 생성
props
{productName}
function Product(props) {
const productName = props.porductName;
const category = props.category;
const price = props.price;
return (
<>
<div className='col-2'><img className='img-fluid' src='https://i.imgur.com/HKOFQYa.jpeg' alt=''/>
</div>
<div className='col'>
<div className='row text-muted'>{productName}</div>
<div className='row'>{category}</div>
</div>
<div className='col text-center price'>{price}원</div>
<div className='col text-end action'>
<button className='btn btn-small btn-outline-dark'>추가</button>
</div>
</>
)
}
function ProductList() {
return (
<React.Fragment>
<h5 className='flex-grow-0'><b>상품 목록</b></h5>
<ul className='list-group products'>
<li className='list-group-item d-flex mt-3'>
{/*product 컴포넌트에 전달*/}
<Product productName={'Columbia 커피'} category={'커피콩'} price={300}/>
</li>
...
{/*반복 -> 이 부분도 부모의 props로 만들 수 있다.*/}
ProductList 리팩토링
App 리팩토링
this.state
로 상태에 접근 가능useState
라는 hook을 이용해야 한다. const [상태에 접근가능한 변수명, 상태값을 바꾸는 함수] = useState();