tsdxでReactコンポーネントを作る

tsdxを使うことで、React(TypeScript)のコンポーネントライブラリを簡単に作ることができます。 Setup tsdx createでプロジェクトが作成できます。 Reactコンポーネントを作る場合は — […]

広告ここから
広告ここまで

目次

    tsdxを使うことで、React(TypeScript)のコンポーネントライブラリを簡単に作ることができます。

    Setup

    tsdx createでプロジェクトが作成できます。

    $ npx tsdx create --help
      Description
        Create a new package with TSDX
    
      Usage
        $ tsdx create <pkg> [options]
    
      Options
        --template    Specify a template. Allowed choices: [basic, react, react-with-storybook]
        -h, --help    Displays this message
    
      Examples
        $ tsdx create mypackage
        $ tsdx create --template react mypackage

    Reactコンポーネントを作る場合は --template react

    tsdxは basic / react / react-with-storybookからテンプレートを選べます。. reactを選ぶと以下のような構造で作られます。

     % npx tsdx create --template react tsdx-react
     % cd tsdx-react 
    % tree -L 1 -I node_modules 
    .
    ├── LICENSE
    ├── README.md
    ├── dist
    ├── example
    ├── package.json
    ├── src
    ├── test
    ├── tsconfig.json
    └── yarn.lock
    
    4 directories, 5 files

    表示を確認しながら作る

    exampleディレクトリにサンプルアプリが用意されてます。このアプリを起動させることで見た目の確認をローカルで行えます。

    $ cd example
    $ yarn
    $ yarn start
    ✨  Done in 9.64s.
    yarn run v1.21.1
    $ parcel index.html
    Server running at http://localhost:1234 
    ✨  Built in 6.32s.

    プロジェクトルートのほうでyarn startを実行すると、ファイルの変更をwatchしてビルドしてくれるようになるので、HMR的な動きをしてくれます。

    テストコードを書く

    test/blah.test.tsxに簡単なコードが用意されてますので、これを参考にすると良いでしょう。enzymereact-testing-libraryあたりは自前で入れる必要があります。

    import * as React from 'react';
    import * as ReactDOM from 'react-dom';
    import { Thing } from '../src';
    
    describe('it', () => {
      it('renders without crashing', () => {
        const div = document.createElement('div');
        ReactDOM.render(<Thing />, div);
        ReactDOM.unmountComponentAtNode(div);
      });
    });
    

    .npmignore を追加しておこう

    exampleなどをこうかいされても困るので、追加しておくと良いかなと思います。

    example/
    .github/
    test/
    yarn.lock
    src/

    作ってみたもの

    習作としてhttps://www.npmjs.com/package/react-github-ribbonsというものを公開してみました。GitHub Pagesなどでおなじみのこの画像をReactで使いやすい感じにしています。

    Fork me on GitHub

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark