Guidebook
ComponentsStorybook

Frameworks

React

React 19 공식 학습 문서의 흐름에 따라 컴포넌트 구현 문법을 확인합니다.

이 저장소는 React 19와 함수 컴포넌트를 사용합니다. 루트에서 pnpm dev:react를 실행하면 6104 포트에 개발 서버를 엽니다.

React란?

React는 component를 조합해 사용자 interface를 만드는 JavaScript library입니다. 각 component는 props와 state를 바탕으로 JSX를 반환하며, state가 변경되면 React가 다음 UI 결과를 계산해 화면을 갱신합니다. 작은 button부터 page 전체까지 같은 component model로 구성할 수 있습니다.

주요 특징

  • markup과 rendering logic을 함께 표현하는 JSX
  • props를 통한 단방향 data 전달과 component 합성
  • useState를 비롯한 Hook 기반 상태와 lifecycle logic
  • JavaScript 조건문과 배열 method를 그대로 사용하는 rendering 문법
  • client application과 server framework에서 재사용할 수 있는 UI model

역할

@uxkm/react는 component를 React props, callback event와 children API로 제공합니다. controlled·uncontrolled 입력 정책을 구분하면서 동일한 DOM과 접근성 결과를 유지합니다. Next.js에서는 표시 전용 component와 client 상호작용 경계를 나눠 같은 구현을 재사용합니다.

문서 구성

메뉴 내용
빠르게 시작하기 component, JSX, 조건·목록과 event의 전체 흐름
UI 표현 JSX, component, props와 UI tree
조건과 목록 조건부 렌더링, 배열 렌더링과 key
상호작용 이벤트 처리, useState와 렌더링 과정
페이지와 라우팅 React Router 수동 연결과 Next.js App Router 자동 생성
State 관리 state 구조, reducer, context와 보존 규칙
탈출구 ref, effect와 외부 시스템 동기화
React로 사고하기 화면 분해와 단방향 데이터 흐름

사용 시작

jsximport Button from '@uxkm/react/button';

export default function SaveButton() {
  return <Button variant="filled">저장</Button>;
}

Next.js에서도 @uxkm/react/* export를 재사용합니다. 상태, event handler, effect가 필요한 UI는 Client Component 경계 안에서 사용합니다.

공식 문서

가이드북소개기초디자인 토큰기초접근성컴포넌트기본 요소컴포넌트레이아웃컴포넌트폼컴포넌트네비게이션컴포넌트데이터 표시컴포넌트피드백컴포넌트기타활용 가이드UI 패턴활용 가이드작성 지침프레임워크프레임워크 구현프레임워크Gulp프레임워크GulpGulp 시작프레임워크GulpGulp 기본 설정프레임워크GulpGulp 기본 API프레임워크GulpHTML 편집 (Gulp NJK)프레임워크GulpWeb Server & Watching Files프레임워크GulpAssets 세팅프레임워크Gulp배포 (Deploying)프레임워크Vue프레임워크Vue빠른 시작프레임워크Vue핵심 기초프레임워크Vue상태와 반응성프레임워크Vue컴포넌트 심화프레임워크Vue페이지와 라우팅프레임워크Vue재사용성프레임워크Vue내장 컴포넌트프레임워크Vue확장하기프레임워크Vue베스트 프랙티스프레임워크VueTypeScript프레임워크Vue추가 주제프레임워크React프레임워크React빠르게 시작하기프레임워크ReactUI 표현프레임워크React조건과 목록프레임워크React상호작용프레임워크React페이지와 라우팅프레임워크ReactState 관리프레임워크React탈출구프레임워크ReactReact로 사고하기프레임워크WebSquare프레임워크WebSquare스튜디오프레임워크WebSquare화면과 이벤트프레임워크WebSquare컴포넌트프레임워크WebSquareDataCollection프레임워크WebSquareSubmission프레임워크WebSquare사용하기프레임워크WebSquareSP5 설정프레임워크WebSquare심화 가이드프레임워크Svelte프레임워크Svelte빠른 시작프레임워크Svelte핵심 기초프레임워크Svelte상태와 반응성프레임워크Svelte컴포넌트 심화프레임워크Svelte페이지와 라우팅프레임워크SvelteTypeScript프레임워크Svelte베스트 프랙티스프레임워크SolidJS프레임워크SolidJS빠른 시작프레임워크SolidJSUI 표현프레임워크SolidJSSignals와 Effects프레임워크SolidJS컴포넌트 심화프레임워크SolidJS페이지와 라우팅프레임워크SolidJS베스트 프랙티스프레임워크Qwik프레임워크Qwik빠른 시작프레임워크Qwik컴포넌트프레임워크Qwik상태와 반응성프레임워크Qwik페이지와 라우팅프레임워크Qwik베스트 프랙티스프레임워크Remix프레임워크Remix빠른 시작프레임워크RemixUI 표현프레임워크Remix페이지와 라우팅프레임워크RemixLoader와 Action프레임워크Remix베스트 프랙티스프레임워크Angular프레임워크Angular빠른 시작프레임워크Angular핵심 기초프레임워크Angular상태와 반응성프레임워크Angular컴포넌트 심화프레임워크Angular페이지와 라우팅프레임워크AngularTypeScript프레임워크Angular베스트 프랙티스프레임워크Astro프레임워크Astro빠른 시작프레임워크Astro페이지와 라우팅프레임워크AstroIslands프레임워크Astro컴포넌트 통합프레임워크Astro베스트 프랙티스