! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

사용자 정의 가능 React 데이터 그리드를 몇 분 내로 빌드하는 방법 > 블로그 & Tips

본문 바로가기

사용자 정의 가능 React 데이터 그리드를 몇 분 내로 빌드하는 방법

페이지 정보

작성자 GrapeCity 작성일 2021-01-07 10:42 조회 5,643회 댓글 0건

본문

데이터 그리드는 UI 출현 이래 가장 일반적인 시각적 소프트웨어 요소로 자리잡았습니다.


데이터 그리드는 최대한 많은 데이터를 가능한 한 빨리 받아들이고 이해하도록 유도하는 본능에 호소합니다. 데이터 표시뿐 아니라 편집에도 데이터 그리드가 그 어느 때보다 유용한 시대가 되었습니다.


대다수 사용자는 정렬, 자동 완성과 같은 자동 편의 기능과 사용자 정의 수식과 같은 고급 기능을 갖춘 Microsoft Excel을 당연히 선택하게 됩니다. 사용자가 Excel을 선택하는 이유는 익숙하기 때문입니다. Excel이 데이터 그리드를 사용하는 소프트웨어의 가장 일반적인 예시가 되었지만 이 패러다임은 소프트웨어 분야에서 더욱 강화되어 왔습니다.


우리가 익숙한 기존 네이티브 응용 프로그램을 웹 앱이 계속해서 대체함에 따라, 데이터 그리드가 웹 앱 UI로의 이동을 모색하는 것은 이해할 만한 일입니다.


Wijmo(위즈모)의 FlexGrid는 이러한 데이터 그리트에 대한 패러다임의 변화를 이끌고 있습니다. 단순하게 데이터 만을 화면에 보여주는 것이 아니라, Excel처럼 유연하게 데이터 컨트롤 할 수 있도록 UI를 제공합니다.

또한, 다양한 API 지원을 통해, 사용자가 요구하는 방식으로 확장하고 커스터마징이 가능합니다.


FlexGrid가 작동하는 모습을 확인하고 React 데이터 그리드 개요 샘플을 통해 FlexGrid에 대해 자세히 알아보십시오. 사본은 NPM, CDN에서 얻거나 GrapeCity 사이트에서 다운로드할 수 있습니다.


FlexGrid를 작동하여 사용자 정의 가능 React 데이터 그리드를 몇 분 내로 빌드해 보겠습니다.


Facebook의 JavaScript 프레임워크인 React와 함께 FlexGrid를 사용하는 방법을 보여드리기 위해 사용할 응용 프로그램은 React 샘플 응용 프로그램입니다.


stackblitz를 사용해 샘플을 만들었으므로 유지 관리하고 공유하기 쉽습니다.

그러면 시작해 보겠습니다!


React 응용 프로그램을 만드는 방법

이 응용 프로그램의 사본을 만들려면 다음 단계를 따르십시오.

  1. stackblitz 열기

  2. 화면 상단의 "React/JavaScript" 버튼 클릭

  3. "@grapecity/wijmo"를 의존성 목록에 입력하여 프로젝트에 Wijmo 추가

사용자 정의 가능 React 데이터 그리드를 몇 분 내로 빌드하는 방법


필수 모듈을 가져오는 방법

이 응용 프로그램의 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를 가져오는 방법에 주목하십시오. 여기서는 Wijmo와 함께 포함된 몇 가지 테마 중 하나인 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() { ... }  
}


응용 프로그램 상태는 만들기로 그룹화되는 “데이터” 속성인 CollectionView를 통해 데이터를 노출합니다. 데이터는 컴포넌트가 마운트된 후 비동기식으로 로드됩니다. 데이터는 수신된 후 CollectionView의 sourceCollection 속성에 할당되어 응용 프로그램에서 사용할 수 있게 됩니다.


이 컴포넌트는 데이터가 필터링될 때 상태를 업데이트하는 데 사용되는 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 속성으로 인해 그룹 헤더의 각 만들기에 대한 평균 가격이 그리드에 표시됩니다.


"FlexGrid" 요소에는 사용자가 모델 및 가격을 기준으로 그리드 데이터를 필터링할 수 있도록 열 필터를 추가하는 "FlexGridFilter" 요소가 포함되어 있습니다. filterApplied 이벤트는 필터 변경 시, 상태를 업데이트하여 페이지의 상단 요약이 업데이트되게 하는 데 사용됩니다.


응용 프로그램을 실행하는 방법

이제 다 끝났습니다!

"2019 Sedans" 응용 프로그램의 React 버전이 준비되었습니다.

사용자 정의 가능 React 데이터 그리드를 몇 분 내로 빌드하는 방법




  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

인기글

더보기
  • 인기 게시물이 없습니다.
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.