検索
ホームページウェブフロントエンドjsチュートリアルReact Storybook:美しいユーザーインターフェイスを簡単に開発します

React Storybook: Develop Beautiful User Interfaces with Ease

React Storybook: Develop Beautiful User Interfaces with Ease

フロントエンドプロジェクトの開始時には、通常、美しいインターフェイスが最初に設計されています。すべてのUIコンポーネントとそれらのさまざまな状態と効果を慎重に計画および描画します。ただし、開発中は状況が変化する傾向があります。新しい要求と予期せぬユースケースが次々と出現しています。当初の美しいコンポーネントのライブラリは、これらのニーズのすべてをカバーするものではなく、新しいデザインを追加し続ける必要があります。

現時点であなたの周りにデザインの専門家がいる場合、それは素晴らしいことですが、彼らはしばしば他のプロジェクトに切り替えて、これらの変更に対処するために開発者だけを残します。その結果、設計の一貫性は低下し始めます。コンポーネントライブラリの既存のコンポーネント、そのステータスと外観を追跡することは困難です。

この設計の混乱を避けるために、通常、すべてのコンポーネントに個別のドキュメントを作成することが最善です。この目的のために利用できるさまざまなツールがありますが、この記事はReactアプリケーション専用に設計されたツールであるReact Storybookに焦点を当てます。コンポーネントとその機能のコレクションを簡単に閲覧できます。 Reactネイティブコンポーネントライブラリは、このようなアプリケーションの例です。

キーポイント

  • UIの開発を簡素化:Reactストーリーブックは、UIコンポーネントの開発と管理プロセスを簡素化し、開発者が独立してコンポーネントを構築し、リアルタイムで動作を視覚化できるようにします。
  • 強化されたコラボレーション:これは、すべてのUIコンポーネントを表示および対話するための単一の場所を提供することにより、デザイナー、開発者、およびその他の利害関係者の間のギャップを埋めるコラボレーションプラットフォームとして機能します。
  • カスタマイズ可能でスケーラブル:アドオンと構成設定を備えた幅広いカスタマイズオプションを提供し、開発者が特定のプロジェクトのニーズに合わせてツールをカスタマイズできるようにします。
  • 自動テストのサポート:JESTおよびその他のテストフレームワークと統合して、UIコンポーネント開発環境での直接自動テストを容易にします。
  • 広く汎用性があり、スケーラブル:小規模および大規模プロジェクトに適しており、React以外の他のJavaScriptフレームワークをサポートしているため、さまざまな開発チームに多目的な選択肢となっています。

なぜReact Storybookが必要なのですか?

では、この表示はどのように役立ちますか?この質問に答えるために、UIコンポーネントの開発に関与する人々をリストし、彼らのニーズを評価してみましょう。ワークフローによっては、このリストは異なる場合がありますが、通常は次のものが含まれます。

デザイナーまたはUXエキスパート

ユーザーインターフェイスの外観と感触を担当します。プロジェクトのプロトタイプフェーズが完了した後、デザイナーは通常チームを去ります。新しい要件が発生した場合、UIの現在の状態を迅速に理解する必要があります。

開発者

開発者は、これらのコンポーネントを作成するものであり、スタイルガイドの主な受益者である可能性があります。開発者には2つの主なユースケースがあります。ライブラリから適切なコンポーネントを見つけて、開発中にテストすることができるということです。

tester

テスターは、コンポーネントが予想どおりに実装されていることを慎重に確認します。テスターの主な仕事の1つは、コンポーネントがあらゆる面で正しく機能することを確認することです。これは統合テストの必要性を排除するものではありませんが、通常、プロジェクト自体で単独で行うよりも便利です。

プロダクトオーナー

設計および実装担当者を受け取ります。プロダクトオーナーは、プロジェクトのすべての部分が期待に沿っていること、およびブランドスタイルが一貫していることを確認する必要があります。

関係者全員が共通しているのは、すべてのコンポーネントを持つ単一の場所を持っていることに気づいたかもしれません。プロジェクト自体のすべてのコンポーネントを見つけることは非常に退屈です。それについて考えてください、プロジェクト内のすべての可能なボタンバリアント(そのステータス(無効、プライマリ、セカンダリなど)を見つけるのにどれくらい時間がかかりますか?したがって、別のライブラリを持つ方がはるかに便利です。

私があなたに納得したなら、あなたのプロジェクトにストーリーブックを設定する方法を見てみましょう。

React Storybook Reactストーリーブックを設定するには、最初にReactプロジェクトが必要です。現時点で適切なプロジェクトがない場合は、Create-React-Appで簡単に作成できます。

ストーリーブックを生成するには、Getttorybookをグローバルにインストールしてください:

その後、プロジェクトに移動して実行します:
<code>npm i -g getstorybook</code>

このコマンドは、次の3つの操作を実行します

<code>getstorybook</code>
@Kadira/Storybookをプロジェクトにインストールします。

StoryBookとBuild-StorybookスクリプトをPackage.jsonファイルに追加します。
  • 基本的な構成を備えた.storybookフォルダーと、サンプルコンポーネントとストーリーを備えたストーリーフォルダーを作成します。
  • ストーリーブックを実行するには、NPMを実行してストーリーブックを実行して表示されたアドレスを開きます(
  • https://www.php.cn/link/93e4d7106625e1b0f2eb8af065c83452

新しいコンテンツを追加React Storybook: Develop Beautiful User Interfaces with Ease

React Storybookが実行されているので、新しいコンテンツを追加する方法を見てみましょう。新しいページは、ストーリーを作成することで追加されます。これらは、コンポーネントをレンダリングするコードのスニペットです。 gettstorybookによって生成されたサンプルストーリーを以下に示します。 Storiesof関数は、ナビゲーションメニューに新しい部分を作成し、ADDメソッドは新しいサブパートを作成します。ストーリーブックを自由に整理することはできますが、2つのレベルを超える階層を作成することはできません。ストーリーブックを整理する簡単な方法の1つは、「フォーム入力」、「ナビゲーション」、「ウィジェット」、および個々のコンポーネントのサブパートなど、関連する要素グループの共通のトップレベルセクションを作成することです。

ストーリーファイルを配置する場所を自由に選択できます。別のストーリーフォルダーまたはコンポーネントの横にあります。私は個人的に後者を好みます。なぜなら、コンポーネントにストーリーを置くことは、それらをアクセスしやすく最新の状態に保つのに役立つからです。

//src/stories/index.js

import React from 'react';
import { storiesOf, action, linkTo } from '@kadira/storybook';
import Button from './Button';
import Welcome from './Welcome';

storiesOf('Welcome', module)
  .add('to Storybook', () => (
    <Welcome showApp={linkTo('Button')}/>
  ));

storiesOf('Button', module)
  .add('with text', () => <Button>Hello Button</Button>)
  .add('with some emoji', () => <Button>? ? ? ?</Button>);
ストーリーは.storybook/config.jsファイルにロードされています。これには、次のコードが含まれています。
<code>npm i -g getstorybook</code>
<code>getstorybook</code>
ソースコードとして別のフォルダーを使用している場合は、正しい場所を指すようにしてください。変更を実施するためのストーリーブックを再実行します。 Storybookはindex.jsファイルをインポートしなくなったため空になりますが、この問題はすぐに解決します。

(以下の内容は基本的に元のテキストと一致しており、セマンティクスを変更しないように少し調整し、部分的な説明が簡素化されます)

新しいストーリーを書く

私たちのニーズに合わせてストーリーブックをわずかに微調整したので、最初のストーリーを書きましょう。しかし、最初に表示するコンポーネントを作成する必要があります。色のブロックに名前を表示するシンプルな名前コンポーネントを作成しましょう。このコンポーネントには、次のJavaScriptとCSSがあります。

//src/stories/index.js

import React from 'react';
import { storiesOf, action, linkTo } from '@kadira/storybook';
import Button from './Button';
import Welcome from './Welcome';

storiesOf('Welcome', module)
  .add('to Storybook', () => (
    <Welcome showApp={linkTo('Button')}/>
  ));

storiesOf('Button', module)
  .add('with text', () => <Button>Hello Button</Button>)
  .add('with some emoji', () => <Button>? ? ? ?</Button>);
import { configure } from '@kadira/storybook';

function loadStories() {
  require('../src/stories');
}

configure(loadStories, module);
この単純なコンポーネントには、デフォルト、ハイライト、および無効の3つの状態があることに気付いたかもしれません。これらすべての状態を視覚化するのはいいことではないでしょうか?このための物語を書きましょう。新しいname.stories.jsファイルをコンポーネントの横に作成し、以下を追加します。

ストーリーブックを開いて、新しいコンポーネントを表示します。結果は次のようにする必要があります
import { configure, addDecorator } from '@kadira/storybook';
import React from 'react';

configure(() => {
    const req = require.context('../src', true, /.stories\.js$/);
    req.keys().forEach(filename => req(filename));
  },
  module
);

コンポーネントの表示方法とそのソースコードを自由に変更してください。 Reactのホットなリロード機能により、ブラウザを手動で更新せずに、ストーリーやコンポーネントを編集するたびに変更がすぐにストーリーブックに変更が表示されることに注意してください。ただし、ファイルを追加または削除する場合、更新が必要になる場合があります。ストーリーブックは常にこれらの変更に気付くとは限りません。 React Storybook: Develop Beautiful User Interfaces with Ease

(次のコンテンツも合理化され、セマンティックの一貫性を維持するために調整されています)

カスタマイズを表示

ストーリーの表示方法を変更したい場合は、コンテナにラップできます。これは、AddDecorator機能を使用して実行できます。たとえば、次のコードを.storybook/config.jsに追加することにより、すべてのページに「例」タイトルを追加できます。

Storiesofの後にAddDecoratorを呼び出すことで、個別の部品をカスタマイズすることもできます。

import React from 'react';
import './Name.css';

const Name = (props) => (
  <div className={`name ${props.type}`}> {props.name} </div>
);

Name.propTypes = {
  type: React.PropTypes.oneOf(['highlight', 'disabled']),
};

export default Name;
ストーリーブックを投稿しました

ストーリーブックの作業を行って、公開する準備ができていると思うと、実行して静的Webサイトとして構築できます。 デフォルトでは、ストーリーブックはStoryBook-Staticフォルダーに組み込まれています。 -oパラメーターを使用して出力ディレクトリを変更できます。これで、お気に入りのホスティングプラットフォームにアップロードする必要があります。

GitHubのプロジェクトに取り組んでいる場合は、StorybookをDocsフォルダーに構築してリポジトリにプッシュすることで、ストーリーブックを公開できます。 GitHubは、GitHubページのWebサイトをそこから提供するように構成できます。ビルドストーリーブックをリポジトリに保存したくない場合は、StoryBook-Deployerを使用することもできます。

構成をビルド

ストーリーブックは、ストーリーの多くの機能をサポートするように構成されています。 Create-React-Appと同じES2015構文で記述できますが、プロジェクトが別のBabel構成を使用すると、.babelrcファイルが自動的にピックアップされます。 JSONファイルや画像をインポートすることもできます。

これで十分でないと思われる場合は、.storybookフォルダーにwebpack.config.jsファイルを作成して、追加のWebPack構成を追加できます。このファイルによってエクスポートされる構成オプションは、デフォルトの構成とマージされます。たとえば、ストーリーにSCSSのサポートを追加するには、次のコードを追加するだけです。

<code>npm i -g getstorybook</code>
SASS-RoaderとNode-Sassをインストールすることを忘れないでください。

必要なWebpack構成を追加できますが、エントリ、出力、および最初のBabelローダーをオーバーライドすることはできません。

開発環境と生産環境にさまざまな構成を追加する場合は、関数をエクスポートできます。基本的な構成と「開発」または「生産」に設定されたconfigType変数を使用して呼び出されます。

アドオンを使用して機能を拡張します ストーリーブック自体は非常に便利ですが、それを改善するためには、いくつかのアドオンがあります。この記事では、それらのいくつかのみをカバーしていますが、後で公式リストをチェックしてください。

(次の部分が合理化され、アドオンの導入が調整されています)ストーリーブックには、アクションとリンクという2つの事前に設定されたアドオンが付属しています。それらを使用するために追加の構成を作成する必要はありません。

アクション:

アクションロガーパネルでコンポーネントトリガーイベントをログに記録できます。

  • リンク:コンポーネント間にナビゲーションを追加できます。
  • ノブ:実行時にUIから直接反応特性を変更して、コンポーネントをカスタマイズできます。インストール方法:
  • 、登録方法:インポート

デコレーターを使用してストーリーを包みます。 npm i --save-dev @storybook/addon-knobs情報:.storybook/addons.jsソースコード、説明、React Proptypesなど、ストーリーに関する情報をさらに追加できます。インストール方法:withKnobs、登録方法:

in

を使用します。 npm i --save-dev @storybook/addon-info自動テスト.storybook/preview.jsaddDecorator

ストーリーブックの重要な側面(この記事に記載されていない)は、自動テストを実行するためのプラットフォームとして使用することです。ユニットテストから機能テストや視覚回帰テストまで、さまざまなテストを実行できます。予想どおり、テストプラットフォームとしてのストーリーブックの機能を強化するために設計されたアドオンがいくつかあります。彼らは別々の記事に値するので、私たちは詳細には触れませんが、それでもそれらについて言及したいと思います。

  • 仕様:ストーリーファイルにユニットテストを直接書き込むことができます。
  • ストーリーショット:ストーリーに基づいてJest Snapshotテストを実行できます。
サービスとしてのストーリーブック

Kadiraは、Storybook Hubと呼ばれるサービスとしてのStorybookも提供しています。これにより、ストーリーブックをホストし、次のレベルにコラボレーションを行うことができます。標準機能に加えて、GitHubと統合され、プルリクエストごとに新しいストーリーブックを生成できます。また、ストーリーブックに直接コメントを残して、同僚との変更について話し合うこともできます。

結論

プロジェクトでUIコンポーネントを維持することが痛みを伴うようになっていると感じたら、一歩下がって、欠けているものを確認してください。関係するすべての関係者間で便利なコラボレーションプラットフォームが必要になる場合があります。この場合、React Projectの場合、Storybookはあなたに最適なツールです。

すでにストーリーブックを使用していますか?試してみるつもりですか?なぜ?またはなぜですか?コメントでお聞きしたいです。

(FAQパーツが合理化され、構造が調整されます)

faq(faq)

    React Storybookは他のUI開発ツールとどう違うのですか?
  • React Storybookを使用すると、開発者はコンポーネントを個別に構築できるようになり、開発プロセスがより速く効率的になり、リアルタイムの視覚テスト環境を提供できます。
  • 他のJavaScriptフレームワークでReact Storybookを使用できますか?
  • はい、Vue.jsやAngularなどのフレームワークをサポートしています。
  • 私のストーリーブックにアドオンを追加する方法は? NPMまたはYARNを介してインストールし、
  • ファイルに追加し、ドキュメントに従って構成します。 .storybook/addons.jsReact Storybookの学習曲線は何ですか?
  • JavaScriptに精通して反応する場合は、すぐに開始できるはずです。
  • 大規模なプロジェクトにReact Storybookを使用できますか?
  • はい、Airbnb、IBM、Lyftなどの大規模な組織で使用されています。
  • 私のストーリーブックを他の人と共有する方法は?
  • GitHubページなどの静的マネージドサービスに展開したり、StoryBook Deployerを使用してNetLifyを使用したりできます。
  • React Storybookでコンポーネントをテストできますか?
  • はい、視覚的なテスト環境を提供し、Jestなどのテストライブラリと統合できます。
  • ストーリーブックの外観をカスタマイズする方法は?
  • ストーリーブックは、テーマのカスタマイズ、カスタムWebpack構成、カスタムアドオンの作成などのオプションを提供します。
  • モバイルアプリケーション開発にReact Storybookを使用できますか?
  • はい、それはReactネイティブをサポートします。
  • React Storybookはオープンソースですか?
  • はい、それはGithubでホストされており、世界中の開発者からの貢献を歓迎します。
  • 要するに、元のテキストは、より簡潔でスムーズにするために大いに書き直され、元の意味を維持しました。 画像形式は同じままです。

以上がReact Storybook:美しいユーザーインターフェイスを簡単に開発しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Webサイトからアプリまで:JavaScriptの多様なアプリケーションWebサイトからアプリまで:JavaScriptの多様なアプリケーションApr 22, 2025 am 12:02 AM

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Python vs. JavaScript:ユースケースとアプリケーションと比較されますPython vs. JavaScript:ユースケースとアプリケーションと比較されますApr 21, 2025 am 12:01 AM

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

JavaScript通訳者とコンパイラにおけるC/Cの役割JavaScript通訳者とコンパイラにおけるC/Cの役割Apr 20, 2025 am 12:01 AM

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

JavaScript in Action:実際の例とプロジェクトJavaScript in Action:実際の例とプロジェクトApr 19, 2025 am 12:13 AM

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

JavaScriptとWeb:コア機能とユースケースJavaScriptとWeb:コア機能とユースケースApr 18, 2025 am 12:19 AM

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンの理解:実装の詳細JavaScriptエンジンの理解:実装の詳細Apr 17, 2025 am 12:05 AM

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Python vs. JavaScript:学習曲線と使いやすさPython vs. JavaScript:学習曲線と使いやすさApr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Python vs. JavaScript:コミュニティ、ライブラリ、リソースPython vs. JavaScript:コミュニティ、ライブラリ、リソースApr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター