React

 

 

home.js

import React, { useEffect, useState } from 'react';
import { Container } from "react-bootstrap";
import BookItem from './../../components/BookItem';

const Home = () => {

    const [books, setBooks] = useState([])

    //함수 실행시 최초 한법 실행되는 것 + 상태값이 변경될때마다 실행
    useEffect(() => {
        fetch("http://localhost:8080/book").then(res => res.json()).then(
            res => {
                // console.log(res)
                setBooks(res);
            }
        ); //비동기 함수
    }, [])

    return (
        <div>
            <Container >
                <h1 className='mb-5'>책 리스트 보기</h1>
                {books.map(book => <BookItem key={book.id} book={book} />)}
            </Container>
        </div>
    );
};

export default Home;

 

 

BookItem.js

import React from 'react';
import { Card } from "react-bootstrap";
import { Link } from 'react-router-dom';

const BookItem = (props) => {

    console.log(props);
    const { id, title, author } = props.book;

    return (

        <Card className='mb-5'>
            <Card.Body>
                <Card.Title>{title}</Card.Title>
                <Link to={"/post/1" + id} className="btn btn-primary" variant="primary">상세보기</Link>
            </Card.Body>
        </Card>

    );
};

export default BookItem;

 

 

 

https://github.com/braverokmc79/React-SpringBoot-1/commits?author=braverokmc79

 

 

 

 

about author

PHRASE

Level 60  라이트

겉모습만 보고 판단하지 말 것. 첫인상이 중요하긴 하지만, 그 중요성에 비해 그 정확성을 그리 신뢰할 만하지 않다. -이드리스 샤흐

댓글 ( 4)

댓글 남기기

작성

React 목록    more