React에서 컴포넌트는 사용자 인터페이스(UI)의 구성 요소와 같습니다. 페이지의 특정 부분이 어떻게 보이고 동작해야 하는지를 정의하는 작고 재사용 가능한 코드 덩어리라고 생각하세요. 이러한 구성 요소를 통해 개발자는 간단하고 독립적이며 재사용 가능한 부분을 결합하여 복잡한 UI를 구축할 수 있습니다.
일반적으로 구성 요소는 본질적으로 사용자 인터페이스의 일부를 렌더링하는 기능으로 생각할 수 있는 독립적이고 재사용 가능한 UI 조각입니다.
독립형, 재사용 가능한 조각 및 렌더링이라는 단어에 대해 약간의 충돌이 있을 수 있다는 것을 알고 있습니다.
컴포넌트를 정의하여 하나씩 증명해보자. 맙소사!? 간단한 구성 요소를 정의하는 방법을 모른다는 것을 잊었습니다. 내가 여기 있으니 걱정하지 마세요. 모든 것을 무너뜨리기 위해. 그럼 뛰어들자-?
전자상거래 애플리케이션을 개발한다고 가정해 보겠습니다. 여러 위치 또는 여러 페이지의 애플리케이션에서 동일한 제품 카드를 렌더링해야 합니다. 렌더링이란 UI에 응답하는 것을 의미합니다.
이제 시간이 되셨나요? 생각하다? 애플리케이션의 제품 카드를 여러 페이지에 표시하는 방법
전통적으로 웹 페이지를 만들 때 개발자는 콘텐츠를 마크업하고 일부 자바스크립트를 뿌려 상호 작용을 추가했습니다. 이는 동일하게 마크업된 여러 페이지가 여러 페이지로 너무 많이 교체되지 않아 때로는 지루하고 동시에 지루할 뿐만 아니라 디버깅 및 관리가 어려울 때 효과적이었습니다. 코드가 복잡하고 관리하기가 번거로울 수 있습니다.
여기에서 React 컴포넌트 아키텍처의 아름다움을 발견하게 될 것입니다. React를 사용하면 구성 요소를 만들고 원하는 만큼 많은 장소를 사용할 수 있습니다.
// === Reminder === Components are regular javascript functions that can sprinkled with javascript
function ProductCard(){ return() }title of the product
price of the product
description of the product
// rest of info
부숴보자-
1단계: ProductCard 이름
으로 간단한 자바스크립트 함수를 선언합니다.
2단계: 구성 요소/함수는 다른 태그로 구성된
// === Reminder === All tags must return under a parent tag or using a react fragment(>)
// === Reminder === React component name must start with a capital letter otherwise it won't treated as a component
ProductCard 구성 요소는 h1,h2,p가 포함된 div 태그 또는 HTML처럼 작성된 기타 필수 태그를 반환하지만 내부적으로는 Javascript입니다. 구문을 JSX(javascript XML)이라고 합니다. 걱정하지 마세요. 나중에 설명하겠습니다.
// === Reminder === JSX is a syntax extension for javascript that lets you write HTML-like markup inside a javascript file which handles the logic of rendering and markup live together in the same place as components.
이제 구성요소를 사용할 준비가 되었습니다. 예를 들어, 제품 페이지가 있고 일부 제품을 렌더링해야 합니다.
//Products.js or jsx file function ProductCard(){ return() } function ProductPage(){ return(title of the product
price of the product
description of the product
// rest of info) } product page
브라우저가 ProductCard를 3번 렌더링한다는 것은 3개의 제품 카드가 브라우저에 표시된다는 의미입니다.
지금까지는 그렇게 좋았나요?. 성공적으로 제품 카드를 제품 페이지에 렌더링했습니다.
이제 코드를 정리할 차례입니다:
ProductCard, ProductReviewCard, 유사한ProductCard 등과 같은 구성 요소가 하나 이상 있을 수 있으므로 모든 구성 요소를 하나의 파일에 선언하고 관리하는 것이 번거로울 수 있습니다. 그럼 파일 구조만으로 관리할 수 있도록 좀 더 체계적으로 만들어 보겠습니다.
ProductCard가 여러 페이지에서 사용되었을 수 있으므로 재사용 가능한 폴더를 만들어 보겠습니다. 재사용 가능한 폴더 안에 ProductCard.js/jsx 파일을 만듭니다.
//reusable/ProductCard.js or jsx file function ProductCard(){ return() }title of the product
price of the product
description of the product
// rest of info
이제 ProductCard 구성 요소를 ProductPage 파일에서 어떻게 사용할 것인지 분리하는 것이 중요합니다. 이미 이해하셨을 수도 있다는 점을 알고 있습니다. ProductCardfile에서 ProductCard 함수를 귀하가 실제로 선호하는 이름 또는 기본값으로 내보낼 수 있습니다.
//reusable/ProductCard.js or jsx file export default function ProductCard(){ return() }title of the product
price of the product
description of the product
// rest of info
이제 ProductPage 파일에서 사용할 수 있습니다. ProductPage 파일에서 ProductCard를 가져온 다음 원하는 만큼 사용하세요.
//ProductPage.js or jsx file import ProducrCard from './reusable/ProductCard.js' function ProductPage(){ return() } product page
앞서 재사용성, 관심 분리, 모듈성을 위해 컴포넌트를 사용해야 하는 이유를 언급했습니다.
이 모든 과정을 거쳐 구성 요소를 중첩할 수도 있다는 것을 이해하게 되었습니다.
그럼 다시 살펴볼까요-?
레이아웃 폴더 생성
Layout 폴더 아래에 Header 폴더를 만든 다음 Header 폴더 안에 index.js 파일을 만듭니다.
export default function Header(){ return() } Header
create `Footer` folder under the `Layout` folder then create `index.js` file inside `Footer` folder export default function Footer(){ return() } Footer
이제 레이아웃 폴더 아래에 index.js 파일이 생성됩니다.
import Header from './Header'; import Footer from './Footer'; export default function Layout(){ return() } page content
당신이 이미 React 컴포넌트 아키텍처의 아름다움을 발견하셨기를 바랍니다. 이것은 이제 막 시작되었으며 여러분의 마음 속에 관심을 키우려고 노력했습니다.
즐거운 코딩 되셨나요??
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3