タグ

ブックマーク / ja.reactjs.org (23)

  • テストのレシピ集 – React

    React コンポーネントのための一般的なテストのパターン集です。 補足: このページではテストランナーとして Jest を使用することを前提としています。もし別のテストランナーを使う場合は API を修正する必要があるかもしれませんが、やり方の全体的な見た目についてはおそらく同じようなものになるはずです。テスト環境のセットアップについては テスト環境 のページをご覧ください。 このページでは主に関数コンポーネントを利用します。しかし以下に述べるテスト手法は実装の詳細には依存しませんので、クラスコンポーネントでも全く同様に動作します。 セットアップ/後始末 act() レンダー データの取得 モジュールのモック化 イベント タイマー スナップショットテスト 複数のレンダラ 何かが足りない? セットアップ/後始末 それぞれのテストにおいて、通常われわれは React ツリーを documen

    テストのレシピ集 – React
    fuyu77
    fuyu77 2022/01/24
  • Error Boundary – React

    この記事は古くなっており、今後更新されません。新しい React語ドキュメントである ja.react.dev をご利用ください。 以下の新しいドキュメントで最新の React の使い方が学べます。 React.Component: エラーバウンダリでレンダー中のエラーをキャッチする かつて、コンポーネント内で発生した JavaScript エラーは React の内部状態を破壊し、以降のレンダーで不可解な エラーを 引き起こしていました。このようなエラーはアプリケーションコード中のどこか前の段階で発生したエラーによって引き起こされますが、React はエラーをコンポーネント内で適切に処理する方法を提供していなかったため回復できませんでした。 error boundary とは UI の一部に JavaScript エラーがあってもアプリ全体が壊れてはいけません。React ユーザが

    Error Boundary – React
    fuyu77
    fuyu77 2021/11/26
  • フラグメント – React

    この記事は古くなっており、今後更新されません。新しい React語ドキュメントである ja.react.dev をご利用ください。 以下の新しいドキュメントで最新の React の使い方が学べます。 <Fragment> React でよくあるパターンの 1 つに、コンポーネントが複数の要素を返すというものがあります。フラグメント (fragment) を使うことで、DOM に余分なノードを追加することなく子要素をまとめることができるようになります。

    フラグメント – React
    fuyu77
    fuyu77 2021/09/21
  • コード分割 – React

    この記事は古くなっており、今後更新されません。新しい React語ドキュメントである ja.react.dev をご利用ください。 以下の新しいドキュメントで最新の React の使い方がライブサンプル付きで学べます。 lazy <Suspense> バンドル 多くの React アプリケーションは、Webpack、Rollup や Browserify などのツールを使ってファイルを「バンドル」しています。バンドルはインポートされたファイルをたどって、それらを 1 つのファイルにまとめるプロセスです。このバンドルされたファイルを Web ページ内に置くことによって、アプリ全体を一度に読み込むことができます。 例 App:

    コード分割 – React
    fuyu77
    fuyu77 2021/07/13
  • ファイル構成 – React

    お勧めの React プロジェクトの構成は? React はファイルをどのようにフォルダ分けするかについての意見を持っていません。とはいえ、あなたが検討したいかもしれないエコシステム内でよく用いられる共通の方法があります。 機能ないしルート別にグループ化する プロジェクトを構成する一般的な方法の 1 つは、CSS や JS やテストをまとめて、機能別ないしルート別のフォルダにグループ化するというものです。 common/ Avatar.js Avatar.css APIUtils.js APIUtils.test.js feed/ index.js Feed.js Feed.css FeedStory.js FeedStory.test.js FeedAPI.js profile/ index.js Profile.js ProfileHeader.js ProfileHeader.css

    ファイル構成 – React
    fuyu77
    fuyu77 2021/07/09
  • テスト概要 – React

    React コンポーネントは他の JavaScript のコードと同じようにテストできます。 React コンポーネントをテストするのにはいくつか方法がありますが、大きく 2 つのカテゴリに分けられます。 コンポーネントツリーのレンダー をシンプルなテスト環境で行い、その結果を検証する アプリケーション全体の動作 をブラウザ同等の環境で検証する(end-to-end テストとして知られる) このセクションでは、最初のケースにおけるテスト戦略にフォーカスします。end-to-end テストが重要な機能のリグレッションを防ぐのに有効である一方で、そのようなテストは React コンポーネントとは特に関係なく、このセクションのスコープ外です。 トレードオフ テストツールを選定する時、いくつかのトレードオフを考慮することは価値があります。 実行速度 vs 環境の現実度: 変更を加えてから結果を見る

    テスト概要 – React
    fuyu77
    fuyu77 2021/06/26
  • DOM 要素 – React

    この記事は古くなっており、今後更新されません。新しい React語ドキュメントである ja.react.dev をご利用ください。 以下の新しいドキュメントで最新の React の使い方がライブサンプル付きで学べます。 Common components (e.g. <div>) <input> <option> <progress> <select> <textarea> React はパフォーマンスとブラウザ間での互換性のために、ブラウザから独立した DOM システムを実装しています。このことを機に、ブラウザの DOM 実装にあるいくつかの粗削りな部分が取り払われました。 React では、DOM のプロパティと属性(イベントハンドラを含む)全てがキャメルケースで名前付けされる必要があります。例えば、HTML 属性 tabindex に React で対応する属性は tabInd

    DOM 要素 – React
    fuyu77
    fuyu77 2021/06/21
  • CSS とスタイルの使用 – React

    render() { let className = 'menu'; if (this.props.isActive) { className += ' menu-active'; } return <span className={className}>Menu</span> } ヒント もしあなたが上記のようなコードを書くことが多い場合、classnames という npm パッケージを使うことで簡略化できます。 インラインスタイルは使えますか? はい、スタイルの書き方についてはこの資料をご覧ください。 インラインスタイルは悪なの? パフォーマンス観点から言えば、基的に CSS クラスを使う方が、インラインスタイルを用いるよりも優れています。 CSS-in-JS とは? “CSS-in-JS” とは外部ファイルでスタイルを定義するのとは違い、JavaScript を用いて CSS

    CSS とスタイルの使用 – React
    fuyu77
    fuyu77 2021/06/21
  • フォーム – React

    この記事は古くなっており、今後更新されません。新しい React語ドキュメントである ja.react.dev をご利用ください。 以下の新しいドキュメントで最新の React の使い方がライブサンプル付きで学べます。 <input> <select> <textarea> HTML のフォーム要素は当然のこととして内部に何らかの状態を持っていますので、フォーム要素は React において他の DOM 要素とちょっと異なる動作をします。例えば、このプレーン HTML によるフォームは 1 つの名前を受け付けます: <form> <label> Name: <input type="text" name="name" /> </label> <input type="submit" value="Submit" /> </form> このフォームは、ユーザがフォームを送信した際に新しい

    フォーム – React
    fuyu77
    fuyu77 2021/06/09
  • 独自フックの作成 – React

    新しい React ドキュメントをお試しください。 以下の新しいドキュメントで最新の React の使い方がライブサンプル付きで学べます。 Reusing Logic with Custom Hooks まもなく新しいドキュメントがリリースされ、このページはアーカイブされる予定です。フィードバックを送る フック (hook) は React 16.8 で追加された新機能です。state などの React の機能を、クラスを書かずに使えるようになります。 自分独自のフックを作成することで、コンポーネントからロジックを抽出して再利用可能な関数を作ることが可能です。 以下のコンポーネントは副作用フックの使い方について学んだ際に見たチャットアプリのコンポーネントであり、フレンドがオンラインかオフラインかを示すメッセージを表示します。 import React, { useState, useEf

    独自フックの作成 – React
    fuyu77
    fuyu77 2021/06/01
  • フック API リファレンス – React

    この記事は古くなっており、今後更新されません。新しい React語ドキュメントである ja.react.dev をご利用ください。 以下の新しいドキュメントで最新の React の使い方が学べます。 react: フック フック (hook) は React 16.8 で追加された新機能です。state などの React の機能を、クラスを書かずに使えるようになります。 このページでは React 組み込みのフックについて説明します。 フックが初めての方は、先に概要ページを確認してください。よくある質問にも有用な情報が掲載されています。 基のフック useState useEffect useContext 追加のフック useReducer useCallback useMemo useRef useImperativeHandle useLayoutEffect useDeb

    フック API リファレンス – React
    fuyu77
    fuyu77 2021/05/31
  • React.Component – React

    この記事は古くなっており、今後更新されません。新しい React語ドキュメントである ja.react.dev をご利用ください。 以下の新しいドキュメントで最新の React の使い方が学べます。 React.Component このページには React コンポーネントクラス定義の詳細な API リファレンスがあります。また、あなたが コンポーネントや props などの基的な React の概念、および state やライフサイクルに精通していることを前提としています。そうでない場合は、まずそれらを読んでください。 概要 React では、コンポーネントをクラスまたは関数として定義できます。クラスとして定義されたコンポーネントは現在このページで詳細に説明されているより多くの機能を提供します。React コンポーネントクラスを定義するには、React.Component を継承

    React.Component – React
    fuyu77
    fuyu77 2021/05/31
  • React の最上位 API – React

    この記事は古くなっており、今後更新されません。新しい React語ドキュメントである ja.react.dev をご利用ください。 以下の新しいドキュメントで最新の React の使い方が学べます。 react: コンポーネント react: フック react: API react: レガシー API ReactReact ライブラリのエントリポイントです。<script> タグから React を読み込む場合、これらの最上位 API をグローバルの React から利用できます。npm と ES6 を使う場合、import React from 'react' と書けます。npm と ES5 を使う場合、var React = require('react') と書けます。 概要 コンポーネント React コンポーネントを使用すると UI を独立した再利用可能な部分に分割

    React の最上位 API – React
    fuyu77
    fuyu77 2021/03/18
  • JSX を深く理解する – React

    この記事は古くなっており、今後更新されません。新しい React語ドキュメントである ja.react.dev をご利用ください。 JSX とは、つまるところ React.createElement(component, props, ...children) の糖衣構文にすぎません。例として、次の JSX コードを見てみましょう。

    JSX を深く理解する – React
    fuyu77
    fuyu77 2021/01/12
  • JSX の導入 – React

    この記事は古くなっており、今後更新されません。新しい React語ドキュメントである ja.react.dev をご利用ください。 以下の新しいドキュメントで最新の React の使い方がライブサンプル付きで学べます。 JSX でマークアップを記述する JSX に波括弧で JavaScript を含める このおかしなタグ構文は文字列でも HTML でもありません。 これは JSX と呼ばれる JavaScript の構文の拡張です。UI がどのような見た目かを記述するために、React とともに JSX を使用することを私たちはお勧めしています。JSX はテンプレート言語を連想させるでしょうが、JavaScript の機能を全て備えたものです。 JSX は React “要素” を生成します。次の章で React 要素を DOM に変換する方法について見ていきます。以下では、JSX

    JSX の導入 – React
    fuyu77
    fuyu77 2021/01/12
  • コンテクスト – React

    この記事は古くなっており、今後更新されません。新しい React語ドキュメントである ja.react.dev をご利用ください。 以下の新しいドキュメントで最新の React の使い方がライブサンプル付きで学べます。 コンテクストで深くデータを受け渡す useContext コンテクストは各階層で手動でプロパティを下に渡すことなく、コンポーネントツリー内でデータを渡す方法を提供します。 典型的な React アプリケーションでは、データは props を通してトップダウン(親から子)で渡されますが、このようなやり方は、アプリケーション内の多くのコンポーネントから必要とされる特定のタイプのプロパティ(例: ロケール設定、UI テーマ)にとっては面倒です。コンテクストはツリーの各階層で明示的にプロパティを渡すことなく、コンポーネント間でこれらの様な値を共有する方法を提供します。 コンテ

    コンテクスト – React
    fuyu77
    fuyu77 2021/01/07
  • Ref と DOM – React

    新しい React ドキュメントをお試しください。 Referencing Values with Refs Manipulating the DOM with Refs useRef forwardRef まもなく新しいドキュメントがリリースされ、このページはアーカイブされる予定です。フィードバックを送る Ref は render メソッドで作成された DOM ノードもしくは React の要素にアクセスする方法を提供します。 一般的な React のデータフローでは、props が、親コンポーネントがその子要素とやりとりする唯一の方法です。子要素を変更するには、新しい props でそれを再レンダーします。ただし、この一般的なデータフロー以外で、子要素を命令型のコードを使って変更する必要がある場合もあります。変更したい子要素が React コンポーネントのインスタンスのことも、DOM

    Ref と DOM – React
    fuyu77
    fuyu77 2021/01/06
  • ReactDOM – React

    この記事は古くなっており、今後更新されません。新しい React語ドキュメントである ja.react.dev をご利用ください。 以下の新しいドキュメントで最新の React の使い方が学べます。 react-dom: コンポーネント react-dom: API react-dom: クライアント用 API react-dom: サーバ用 API react-dom パッケージではアプリのトップレベルで使うための DOM 特有のメソッドを提供しています。また必要に応じて React モデルから外に出るための避難ハッチ用メソッドも提供しています。

    ReactDOM – React
    fuyu77
    fuyu77 2021/01/04
  • 副作用フックの利用法 – React

    この記事は古くなっており、今後更新されません。新しい React語ドキュメントである ja.react.dev をご利用ください。 以下の新しいドキュメントで最新の React の使い方がライブサンプル付きで学べます。 エフェクトを使って同期を行う エフェクトは必要ないかもしれない useEffect フック (hook) は React 16.8 で追加された新機能です。state などの React の機能を、クラスを書かずに使えるようになります。 副作用 (effect) フック により、関数コンポーネント内で副作用を実行することができるようになります: import React, { useState, useEffect } from 'react'; function Example() { const [count, setCount] = useState(0); /

    副作用フックの利用法 – React
    fuyu77
    fuyu77 2021/01/03
  • PropTypes を用いた型チェック – React

    この記事は古くなっており、今後更新されません。新しい React語ドキュメントである ja.react.dev をご利用ください。 PropTypes はモダンな React ではあまり使われなくなっています。静的型チェックには TypeScript を利用してください。 注意: React.PropTypes は React v15.5 において別パッケージに移動しました。代わりに prop-types ライブラリを利用するようにしてください。 コードを自動で変換するための codemod スクリプトを提供しています。 アプリケーションが成長するにつれて、型チェックによって多くの不具合を見つけられるようになります。アプリケーションによっては、Flow もしくは TypeScript のような JavaScript 拡張を使ってアプリケーション全体の型チェックを行うことができるでしょ

    PropTypes を用いた型チェック – React
    fuyu77
    fuyu77 2021/01/03