프로젝트 소개
React-admin은 REST 또는 GraphQL API 상에서 브라우저에서 실행되는 싱글 페이지 애플리케이션을 구축하기 위해 marmelab이 유지 관리하는 프런트엔드 프레임워크입니다. TypeScript로 작성되었으며 React와 Material Design을 기반으로 구축되었고, npm에서 react-admin으로 배포됩니다.
백엔드 불가지론: 이 프레임워크는 Data Providers라는 어댑터를 통해 API와 통신합니다. README에는 45개 이상의 어댑터를 문서화한 Data Provider 목록이 링크되어 있으며, 기존 제공자를 API의 청사진으로 사용하거나 기존 API를 쿼리하기 위해 커스텀 Data Provider를 작성할 수 있다고 설명합니다.
빌딩 블록: 이 프로젝트는 인증, 라우팅, 폼 및 유효성 검사, datagrids, 검색 및 필터링, 관계, 역할 및 권한, 리치 텍스트 에디터, i18n, 알림, 메뉴, 테마 및 캐싱을 지원하는 훅과 컴포넌트를 제공합니다. 또한 접근성, 반응성, 보안, 속도 및 테스트 가능성과 같은 품질과 낙관적 렌더링, 입력 시 필터링, 실행 취소, 기본 설정 및 저장된 쿼리와 같은 사용자 경험 기능을 나열합니다.
커스터마이징: react-admin은 재사용 가능한 컨트롤러 로직을 노출하는 느슨하게 결합된 React 컴포넌트와 훅의 라이브러리로 제시되므로, 커스텀 datagrid, REST 대신 GraphQL, 또는 Material Design 대신 다른 디자인 시스템과 같이 어느 부분이라도 사용자의 것으로 교체할 수 있습니다. TypeScript는 선택 사항으로 설명되어 TypeScript 또는 JavaScript로 개발할 수 있습니다. README에는 이 프레임워크가 Material UI, react-hook-form, react-router, react-query 및 TypeScript 등에 의해 구동된다고 명시되어 있습니다.
시작하기: 설치는 npm install react-admin 또는 yarn add react-admin으로 수행합니다. 문서에는 튜토리얼, YouTube 비디오 튜토리얼 및 전체 API 참조가 포함되어 있습니다. 저장소에는 예제 애플리케이션이 포함되어 있습니다: 엔드 투 엔드 테스트에 사용되는 포스트, 댓글, 사용자가 포함된 간단한 블로그, 공식 데모인 이커머스 포스터 샵 관리자, CRM 애플리케이션, 실시간 잠금 및 알림 기능이 있는 헬프데스크 티켓팅 애플리케이션, 그리고 튜토리얼을 따라 구축한 애플리케이션이 있습니다. README에 따르면 API가 클라이언트 측에서 시뮬레이션되므로 이러한 예제들은 서버 없이 작동합니다.
최소 사용 샘플은 API 엔드포인트에 대한 리스트, 수정 및 생성 페이지를 선언하는 Resource 컴포넌트를 감싸는 Admin 컴포넌트를 보여주며, 페이지 컴포넌트는 List, DataTable, Edit, Create, SimpleForm, DateField, EditButton 및 입력 컴포넌트로 구축됩니다.
개발: 모노레포는 make install, make build, make run-simple, make run-demo, make test 및 make prettier와 같은 명령어가 포함된 makefile을 사용합니다. 단위 테스트에는 jest를, 엔드 투 엔드 테스트에는 cypress를 사용하며, git pre-commit 훅이 수정된 파일과 관련된 테스트를 실행합니다. 기여 시에는 기존의 prettier 기반 코딩 스타일을 따르고 단위 테스트와 문서를 포함해야 합니다. 버그 수정 풀 리퀘스트는 master 브랜치를 대상으로 하며, 새로운 기능 및 파괴적 변경 사항은 next 브랜치를 대상으로 합니다.
지원 및 라이선스: 커뮤니티 지원은 Discord와 StackOverflow를 통해 제공되며, 상업적 지원은 React-Admin Enterprise Edition을 통해 제공됩니다. React-admin은 MIT 라이선스 하에 제공되며 상업적 목적을 포함하여 무료로 사용할 수 있습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.