ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터의 렌더링 목록
    FrontEnd/React 2022. 7. 9. 10:12
    728x90

    -expenses.js

    import React, { useState } from "react";
    import ExpenseItem from "./Expenseltem"
    import Card from '../UI/Card';
    import ExpensesFilter from './ExpensesFilter';
    import './Expenses.css'
    function Expenses(props) {
        const [filteredYear, setFilteredYear] = useState('2020');
        const filterChangeHandler = selectedYear => {
            setFilteredYear(selectedYear);
        }
    
        return (
            <div>
                <Card className="expenses">
                    <ExpensesFilter selected={filteredYear} onChangeFilter={filterChangeHandler} />
                    <ExpenseItem
                        title={props.items[0].title}
                        amount={props.items[0].amount}
                        date={props.items[0].date} />
                    <ExpenseItem
                        title={props.items[1].title}
                        amount={props.items[1].amount}
                        date={props.items[1].date} />
                    <ExpenseItem
                        title={props.items[2].title}
                        amount={props.items[2].amount}
                        date={props.items[2].date} />
                    <ExpenseItem
                        title={props.items[3].title}
                        amount={props.items[3].amount}
                        date={props.items[3].date} />
                </Card>
            </div>
        )
    }
    
    export default Expenses;

    기존에 Expense.js에 데이터 렌더링 목록은 하드코딩으로 각각의 배열로 데이터를 불러왔다.

    하지만 어떤 프로그래밍이든 이러한 방법은 좋지 못하다.

     

    import React, { useState } from "react";
    import ExpenseItem from "./Expenseltem"
    import Card from '../UI/Card';
    import ExpensesFilter from './ExpensesFilter';
    import './Expenses.css'
    function Expenses(props) {
        const [filteredYear, setFilteredYear] = useState('2020');
        const filterChangeHandler = selectedYear => {
            setFilteredYear(selectedYear);
        }
    
        return (
            <div>
                <Card className="expenses">
                    <ExpensesFilter selected={filteredYear} onChangeFilter={filterChangeHandler} />
                    {/* 표준 자바스크립트 내장 기능 map() 메소드 */}
                    {/* map() 메소드는 다른 배열을 기반으로 새로운 배열을 생성하는데 원본배열에 있는 모든 요소들을 변환합니다.  */}
                    {/* 모든 expense객체를 틀별한 객체 JSX요소로 변환 */}
                    {props.items.map(expense => <ExpenseItem
                        title={expense.title}
                        amount={expense.amount}
                        date={expense.date}
                    />)}
                </Card>
            </div>
        )
    }
    
    export default Expenses;

    자바스크립트 메소드인 map() 을 활용해서 똑같은 결과를 만들어낸 코드이다.

     

    'FrontEnd > React' 카테고리의 다른 글

    JSX 안에 자바스크립트 값 사용하기  (0) 2022.08.30
    Fragment 태그 활용  (0) 2022.08.30
    자식 -> 부모 컴포넌트 통신(상향식)  (0) 2022.07.08
    양식 제출 처리!  (0) 2022.07.08
    여러 State 다루기!!  (0) 2022.07.07

    댓글

Designed by Tistory.