npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-ez-table

v0.2.4

Published

Downloads

17

Readme

react-ez-table

제작동기

다른사람들이 잘 만들어둔 라이브러리를 내 코드에 잘 적용하는것이 기본이자 능력이라고 생각합니다.

그럼 이게 기본이라면 심화는 뭘까.

직접 만들어보는것 아닐까 생각을 하게 되었습니다.

사실 그것 말고도 타 라이브러리를 사용하면서 오버라이딩이 불편하다던가, 원하는 기능이 없다던가 , 조금 더 요구하는 디자인 디테일에 맞추기 위해서 등 ...

라이브러리를 사용하지않고 직접 구현한 적이 꽤 있는데

그 중 가장 먼저 생각한 data table 을 한 번 만들어보고 싶어졌습니다.

또 핵심 라이브러리는 직접 만드는 경우도 꽤 있다하니, 이러한 경험이 도움이 될 것이라고 생각하였습니다.

npm i react-ez-table

dataHeader 는 [{render: 'string', value: 'string'}, {}...] 형식으로 주어져야합니다. 단순히 화면에 보여지는 용도로만 쓰이는 render 가 있습니다. value 는 기능을 위해 존재하며 . key 또한 value 로 설정되어 있어 유니크해야합니다.

dataItems 는 header의 value를 key 로 가지고있는 객체로 구성되어있으며 배열형태여야 합니다. 실제 데이터구조는 [{headerKey1: value, headerKey2: value2, ...} , .... ] 의 형태로 주어져야합니다.

제작동기

다른사람들이 잘 만들어둔 라이브러리를 내 코드에 잘 적용하는것이 기본이자 능력이라고 생각합니다.

그럼 이게 기본이라면 심화는 뭘까.

직접 만들어보는것 아닐까 생각을 하게 되었습니다.

사실 그것 말고도 타 라이브러리를 사용하면서 오버라이딩이 불편하다던가, 원하는 기능이 없다던가 , 조금 더 요구하는 디자인 디테일에 맞추기 위해서 등 ...

라이브러리를 사용하지않고 직접 구현한 적이 꽤 있는데

그 중 가장 먼저 생각한 data table 을 한 번 만들어보고 싶어졌습니다.

또 핵심 라이브러리는 직접 만드는 경우도 꽤 있다하니, 이러한 경험이 도움이 될 것이라고 생각하였습니다.

예시


const Example = () => {

    const headers = [
        {
            render: '테이블헤더에 보여지는 텍스트1',
            value:  'one'
        },
        {
            render: '테이블헤더에 보여지는 텍스트2',
            value:  'two'
        },
        {
            render: '테이블헤더에 보여지는 텍스트3',
            value:  'three'
        },
        {
            render: '테이블헤더에 보여지는 텍스트4',
            value:  'four'
        },
        {
            render: '테이블헤더에 보여지는 텍스트5',
            value:  'five'
        },
    ]
    
    const items = [
        {
            'one' : 1,
            'two': 2,
            'three': 3,
            'four': 4,
            'five': 5,
        },
        {
            'one' : 6,
            'two': 7,
            'three': 8,
            'four': 9,
            'five': 10,
        },
        {
            'one' : 11,
            'two': 12,
            'three': 13,
            'four': 14,
            'five': 15,
        },
        {
            'one' : 16,
            'two': 17,
            'three': 18,
            'four': 19,
            'five': 20,
        },
    ]
    
    
    
    return (
        <EzTable
            dataHeaders={headers}
            dataItems={items}
        />
    )
}

이 테이블엔 기본적으로 주어지는 색상으로 black 과 white 가 있습니다.

색상 오버라이딩을 쉽게 하기 위해 userColor 와 userTextColor 가 지원됩니다. userColor 는 cell 에 mouse hover 를 진행했을때 색에 영향을 줍니다.

expand 는 기본적으로 false 상태이며 children 이라는 특별한 props 로 구성되어있어 자신이 원하는 jsx 를 넣을 수 있습니다.


const Example = () => {
    
    return (
        <EzTable
            dataHeaders={headers}
            dataItems={items}
            
            expand={true}
        >
            <div>
                <input type="text" placeholder="Enter text" />
                <button>Submit</button>
            </div>
        </EzTable>
    )
}