기초튜토리얼 웹 응용 프로그램에서 React 데이터 그리드를 빠르게 만드는 방법
페이지 정보
작성자 GrapeCity 작성일 2023-06-26 16:46 조회 744회 댓글 0건본문
관련링크
대다수의 사용자는 정렬, 자동 완성과 같은 자동 편의 기능과 사용자 정의 수식과 같은 고급 기능을 갖춘 Microsoft Excel을 자연스럽게 선택합니다. 사용자들이 Excel을 선택하는 이유는 Excel이 익숙하기 때문입니다.
Excel이 데이터 그리드를 사용하는 소프트웨어의 가장 일반적인 예시가 되었지만, 소프트웨어 분야 전반에 걸쳐 패러다임이 확장되어 왔습니다. 웹 앱이 우리에게 익숙한 기존의 네이티브 응용 프로그램을 계속해서 대체함에 따라, 데이터 그리드 또한 웹 앱 UI로의 이동을 모색하는 것은 당연한 일입니다.
시장에는 오픈 소스이거나, 타사에서 제작되거나, 자체 개발된 수많은 JavaScript 데이터 그리드가 있습니다. 이 중에 어떤 것을 선택해야 할까요?
다른 게시물에서는 데이터 그리드가 그토록 유용한 UI 요소인 이유와 인 이유를 알아보았습니다.
통해 를 확인하고 FlexGrid의 실제 작동을 확인할 수 있습니다. 샘플 사본은 , , 또는 에서 다운로드할 수 있습니다. 이 모든 게 정말 훌륭하지 않나요?
FlexGrid를 작동시켜 봅시다. 이 React 데이터 그리드 예제에서는 사용자 정의 가능한 React 데이터 그리드를 몇 분 안에 빌드합니다.
Facebook의 JavaScript 프레임워크인 React에서
FlexGrid를 사용하는 방법을 보여드리기 위해 을 사용하겠습니다.
샘플은 를 사용해 만들었으므로 유지 관리하고 공유하기 쉽습니다.
이번 스터디에서는 다음과 같은 내용을 다룹니다.
React 앱을 만드는 방법
React 데이터 그리드 예시 앱의 사본을 만들려면 다음 단계를 따릅니다.
stackblitz를 엽니다.
화면 상단의 'React/JavaScript' 버튼을 클릭합니다.
'@grapecity/wijmo'를 종속성 목록에 입력하여 프로젝트에 Wijmo를 추가합니다.
필수 모듈을 가져오는 방법
이 앱의 React 버전에서 모든 코드 및 로직은 index.js 파일에 포함되어 있습니다.
코드는 React 및 Wijmo에서 필요한 클래스 및 스타일을 가져오는 작업부터 시작합니다.
import React from "react"; import ReactDOM from "react-dom"; import "./style.css"; import { CollectionView } from "@grapecity/wijmo"; import { FlexGrid } from "@grapecity/wijmo.react.grid"; import { FlexGridFilter } from "@grapecity/wijmo.react.grid.filter"; import "@grapecity/wijmo.styles/wijmo.css";
클래스뿐만 아니라 코드에서 일부 CSS를 가져오는 방법에도 주목해 보세요!
이 React 데이터 그리드 자습서에서는 Wijmo에 포함된 여러 테마 중 하나인 Material 테마를 선택했습니다.
앱 스타일 지정하기
앱의 스타일을 지정하려면 styles.css 파일을 다음과 같이 편집하세요.
body { font-family: Lato, Arial, Helvetica; } .wj-flexgrid { /* limit the grid's width and height */ max-height: 300px; max-width: 32em; }
그리드에 데이터 소스 추가하기
데이터 소스는 평소와 같이 React 앱에 대한 앱 컴포넌트의 상태 중 일부가 됩니다.
앱 컴포넌트는 다음과 같이 정의됩니다.
class App extends React.Component { constructor() { super(); this.state = { data: new CollectionView([], { groupDescriptions: ["make"] }) }; this.filterApplied = () => { let view = this.state.data; this.setState({ data: view }); }; } componentDidMount() { fetch("https://api.jsonbin.io/b/5f0765bc5d4af74b01295f26").then(result => result.json()).then(data => { let view = this.state.data; view.sourceCollection = data; this.setState({ data: view }); }); } render() { ... } }
React 데이터 그리드 예시 앱 상태는 제조사(Make)로 그룹화되는 '데이터' 속성인 를 통해 데이터를 노출합니다. 데이터는 컴포넌트가 마운트된 후 비동기로 로드됩니다. 데이터는 수신된 후 CollectionView의 속성에 할당되어 응용 프로그램에서 사용할 수 있게 됩니다.
이 컴포넌트는 데이터가 필터링될 때 상태를 업데이트하는 데 사용되는 filterApplied 메서드도 정의합니다. 이 컴포넌트는 앱 헤더에 표시되는 총 개수를 업데이트하는 데 필수적입니다.
React에서 데이터를 시각화하는 방법
마지막 단계는 앱 컴포넌트의 render 메서드를 구현하는 것입니다. 이 메서드는 그리드를 비롯한 전체 UI를 렌더링합니다.
class App extends React.Component { constructor() { ... } componentDidMount() { ... } render() { return ( <div> <h1>2019 Sedans (React)</h1> <p> Sort by model and price by clicking the column headers. Filter by value or condition by clicking the filter icons in the column headers. Collapse and expand makes to see all the models. Select one or more models with the mouse or keyboard and copy your selection to the clipboard. </p> <p> Showing <b>{this.state.data.items.length}</b> models from{" "} <b>{this.state.data.groups.length}</b> makes. </p> <FlexGrid allowResizing={"None"} showAlternatingRows={false} isReadOnly={true} selectionMode={"ListBox"} headersVisibility={"Column"} autoGenerateColumns={false} columns={[ { binding: "make", header: "Make", width: "*", visible: false }, { binding: "model", header: "Model", width: "*" }, { binding: "price", header: "Price", width: ".5*", format: "c0", aggregate: "Avg" } ]} itemsSource={this.state.data} > <FlexGridFilter filterApplied={this.filterApplied} /> </FlexGrid> </div> ); } }
앱 헤더에는 짧은 앱 설명과 표시되는 모델 및 제조사의 수에 대한 요약이 포함되어 있습니다.
요약에 있는 수는 사용자가 데이터를 필터링할 때 자동으로 업데이트됩니다. 헤더 다음에는 itemsSource, 표시할 열, 속성 등 그리드의 속성을 초기화하는 'FlexGrid' 요소가 나옵니다.
열 속성에는 각 열의 바인딩, 헤더, 서식, 너비가 있습니다. 가격 열의 aggregate 속성으로 인해 React 데이터 그리드 예제의 그룹 헤더에는 제조사별 평균 가격을 표시합니다.
'FlexGrid' 요소에는 사용자가 모델과 가격을 기준으로 그리드 데이터를 필터링할 수 있는 열 필터를 추가하는 'FlexGridFilter' 요소가 포함되어 있습니다. filterApplied 이벤트는 필터 변경 시 상태를 업데이트하여 페이지의 상단 요약이 업데이트되도록 합니다.
응용 프로그램을 실행하는 방법
다 되었습니다!
. (링크를 누르면 데모 앱으로 이동합니다.)
이번 스터디가 여러분의 마음에 드셨길 바랍니다.
즐겁게 코딩하세요!
지금 바로 Wijmo를 다운로드하여 직접 테스트해 보세요!
댓글목록
등록된 댓글이 없습니다.