문제의 발단 앞서 배운 Flagment와 더불어 간결한 코드를 작성하는 데 도움을 주는 기능이 있다. 아래의 예를 살펴보자. 이 코드를 실제 DOM으로 렌더링하게 되면 오른쪽 HTML처럼 렌더링 될 것이다. 이 코드 자체에는 문제는 없지만 코딩 방식에 문제가 있다. Modal은 의미적이거나 간결한 HTML 구조를 갖추는 관점에서 보면 별로 좋지 못하다. 기본적으로 Modal은 페이지 위에 표시되는 overlay이기 때문이다. Modal은 전체 페이지에 대한 overlay며 다른 것 위에 있다. 그런데 이런 Modal이 HTML 코드 안에 중첩되어 있다면 기술적으로는 스타일링 덕분에 잘 작동하더라도 문제가 발생할 수 있다. 만약 overlay 내용이 중첩되어 있다면, 렌더링 되는 HTML 코드를 해석할 때..
JSX의 제한 사항[요구 사항] React는 JSX로 작업한다. JSX는 component에서 반환되는 코드로 React는 이 코드를 실제 DOM으로 렌더링한다. 하지만 JSX에는 제한 사항이 존재한다. return ( Hi there! This does not work :~( ) ; 만약 위의 코드처럼 component의 return 값에 복수의 JSX 요소들이 있다면 오류가 발생한다. 즉, root-level에서는 두 개의 JSX 요소가 인접해 있다면 다른 JSX 요소에 의해서 반환되거나 변수에 저장되지 않는다. React에서는 일반적으로 root JSX 요소가 하나여야만 한다. 저장하거나 반환하는 가장 위의 요소는 반드시 하나여야 한다. 그 이유는 명확한데, JavaScript에서는 둘 이상의 값을..
스타일의 범위 국한시키기 React에서 CSS를 활용하여 스타일을 적용시키고 동적으로 할당하기도 했었다. 기본적인 React의 CSS 적용 방식은 import "./CSSFileName.css";와 같이 사용한다. 해당 방식에는 한 페이지에서 여러 component들의 CSS 파일을 공유하여 모든 스타일들이 전역으로 사용하게 된다. 이는 DOM 어딘가에 명명한 class와 같은 이름을 가진 class가 존재한다면 해당 스타일이 그 대상에게까지 영향을 미친다는 것을 의미한다. 이는 기본적으로 스타일의 범위가 정해져 있지 않기 때문이다. 물론, CSS를 명명할 때 조금 신경만 쓴다면 꼭 문제가 되지는 않는다. 그것들은 결국 일반적인 CSS고 어떤 이름이라도 사용할 수 있기 때문이다. 그리고 선택하는 여러 요..
앞에서 component에 대해서 다루면서 component에 CSS를 입히는 방법에 대해서 같이 이야기했다. 이번에는 동적 할당에 대해서 알아보자. Component란 무엇일까? 앞서 React란 무엇인지 다뤘다. React란 무엇일까? React의 정의 React 공식 홈페이지에 따르면, 사용자의 인터페이스를 짓는 JavaScript library라고 설명한다. 문자 그대로 해석은 가능하지만 무언가 직접 coding-leaf.tistory.com How to set style Dynamically React로 만들어진 웹 앱들은 대체로 화려하다. 이는 사용자의 상호작용에 맞춰 페이지도 반응하기 때문인데, 이렇게 반응하기 위해서는 정적(static)으로 style을 입혀서는 안된다. 동적으로 style..
이전 시간 지금까지 표준 JS의 map method를 활용하여 동적으로 데이터를 출력하고, filter method로 선택된 연도에 맞는 item만 출력되도록 하는 코드를 작성했다. 그 코드는 아래와 같으며, 정상적으로도 작동한다. 더보기 import React, { useState } from "react"; import ExpensesFilter from "./ExpensesFilter"; import ExpenseItem from "./ExpenseItem"; import Card from "./../UI/Card"; import "./Expenses.css"; const Expenses = (props) => { const [filterYear, setFilterYear] = useState("2..