Reactでpropsを使用する方法と制限する方法

Reactでpropsを使用する方法と制限する方法

コンポーネントの props (props はオブジェクトです)

機能: コンポーネントに渡されたデータを受信する 特徴:

  • コンポーネントにはあらゆるタイプのデータを渡すことができます
  • Props は読み取り専用オブジェクトです。プロパティの値を読み取ることしかできず、オブジェクトを変更することはできません。
  • 注意: クラス コンポーネントを使用する場合、コンストラクターを記述するときは、props を super() に渡す必要があります。そうしないと、コンストラクターでそれを取得できなくなります。

小道具

 <div id="test1"></div>
  <div id="test2"></div>
  <div id="test3"></div>
  <!-- react core ライブラリをインポート -->
  <script src="../js/react.development.js"></script>
  <!-- react-dom を導入して、DOM を操作するための react をサポートする -->
  <script src="../js/react-dom.development.js"></script>
  <!-- jsx を js に変換するには babel を導入します -->
  <script src="../js/babel.min.js"></script>
  <スクリプトタイプ='text/babel'>
  // コンポーネントを作成する class Person extends React.Component{
    与える() {
      console.log(これを);
      const{名前、年齢、性別} = this.props
      戻る(
        <ul>
          <li>名前: {name}</li>
          <li>性別: {sex}</li>
          <li>年齢: {age+1}</li>
        </ul>
      )
    }
  }
  // コンポーネントをページにレンダリングします ReactDOM.render(<Person name="jerry" age={19} sex="男" />,document.getElementById('test1'))
  ReactDOM.render(<Person name="tom" age={18} sex="女" />,document.getElementById('test2'))

  const p = {name:'老刘',age:18,sex:'女'}
  // ReactDOM.render(<人名={p.name} 年齢={p.age} 性別={p.sex} />,document.getElementById('test3'))
  
  ReactDOM.render(<Person {...p} />,document.getElementById('test3'))

  </スクリプト>

小道具の制限

prop-types.jsを必ずインポートしてください。そうしないとエラーが発生します。

<div id="test1"></div>
  <div id="test2"></div>
  <div id="test3"></div>
  <!-- react core ライブラリをインポート -->
  <script src="../js/react.development.js"></script>
  <!-- react-dom を導入して、DOM を操作するための react をサポートする -->
  <script src="../js/react-dom.development.js"></script>
  <!-- jsx を js に変換するには babel を導入します -->
  <script src="../js/babel.min.js"></script>
  <!-- コンポーネント タグの属性を制限するために使用される prop-types を導入します。導入後、世界にはもう 1 つのオブジェクト PropTypes があります -->
  <script src="../js/prop-types.js"></script>

  <スクリプトタイプ='text/babel'>
  // コンポーネントを作成する class Person extends React.Component{
    与える() {
      console.log(これを);
      const{名前、年齢、性別} = this.props
      戻る(
        <ul>
          <li>名前: {name}</li>
          <li>性別: {sex}</li>
          <li>年齢: {age+1}</li>
        </ul>
      )
    }
  }
  // 制限ルール Person.propTypes = {
    // 名前の内容を文字列に制限する isRequired は、内容が必須であり省略できないことを意味します name:PropTypes.string.isRequired,
    // 性別を文字列に制限する sex: PropTypes.string,
    // 年齢を数値に制限する age: PropTypes.number,
    // 発言を関数speak: PropTypes.funcに制限する
  }
  Person.defaultProps = {
    sex:'male', // 性別のデフォルト値は男性 age:18,
    話す: 関数() {
        [1]を返す;
    }
  }
  // コンポーネントをページにレンダリングします ReactDOM.render(<Person name="jerry" age={19} />,document.getElementById('test1'))
  ReactDOM.render(<Person name="tom" age={18} sex="女" />,document.getElementById('test2'))

  const p = {name:'老刘',age:18,sex:'女'}
  // ReactDOM.render(<人名={p.name} 年齢={p.age} 性別={p.sex} />,document.getElementById('test3'))
  
  ReactDOM.render(<Person {...p} />,document.getElementById('test3'))

  </スクリプト>

Vue のプロパティの制限

ご存知のこれらのタイプなど、コンポーネント プロパティの検証要件を指定できます。要件が満たされていない場合、Vue はブラウザ コンソールで警告を表示します。これは、他の人が使用するコンポーネントを開発する場合に特に役立ちます。

プロパティの検証方法をカスタマイズするには、文字列の配列ではなく、プロパティ値の検証要件を持つオブジェクトを提供できます。例えば:

Vue.component('my-component', {
  小道具: {
    // 基本的な型チェック (`null` と `undefined` はすべての型検証に合格します)
    propA: 数値、
    // 複数の可能な型 propB: [String, Number],
    // 必須の文字列 propC: {
      タイプ: 文字列、
      必須: true
    },
    // デフォルト値を持つ数値プロパティ: {
      タイプ: 数値、
      デフォルト: 100
    },
    // デフォルト値を持つオブジェクト propE: {
      タイプ: オブジェクト、
      // オブジェクトまたは配列のデフォルト値はファクトリー関数から取得する必要があります default: function () {
        戻り値: 'hello' }
      }
    },
    // カスタム検証関数 propF: {
      バリデータ: 関数 (値) {
        // この値は、次の文字列のいずれかと一致する必要があります。 return ['success', 'warning', 'danger'].indexOf(value) !== -1
      }
    }
  }
})

プロパティの検証が失敗すると、Vue (開発ビルド) はコンソール警告を生成します。

プロパティはコンポーネント インスタンスが作成される前に検証されるため、インスタンス プロパティ (データ、計算など) はデフォルト関数または検証関数では使用できません。

型チェック
type は、次のいずれかのネイティブ コンストラクターになります。

弦
番号
ブール
配列
物体
日付
関数
シンボル

さらに、type は、instanceof でチェックされるカスタム コンストラクターにすることもできます。たとえば、次のような既成のコンストラクターがあるとします。

関数 Person (firstName, lastName) {
  this.firstName = ファーストネーム
  this.lastName = 姓
}

以下を使用できます:

Vue.component('ブログ投稿', {
  小道具: {
    著者: 人物
  }
})

author プロパティの値が新しい Person によって作成されたことを確認します。

React における props の使用と制限に関するこの記事はこれで終わりです。React props の制限に関する詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Reactにおけるコンテキスト適用シナリオの分析
  • React Contextの理解と応用についてお話ししましょう
  • Reactコンテキストを使用してvueスロット関数を実装する
  • ReactのPropsの簡単な比較
  • Reactの3つの主要属性におけるpropsの使用の詳細な説明
  • Reactのコンテキストとプロパティの説明

<<:  MySQL がユーザー名とパスワードの漏洩を引き起こす可能性のある Riddle の脆弱性を公開

>>:  Nginx プロキシを使用してインターネットを閲覧する方法

推薦する

MySql データベース クエリの特殊コマンド

まずMySQLのインストールMySQLソフトウェアをダウンロードし、インストールパスを変更しますMy...

CSS3のボックスサイズプロパティの興味深いボックスモデルについての簡単な説明

誰もがボックス モデルの構成を、内側から外側まで、コンテンツ、パディング、境界線、マージンについて知...

Ubuntu での CUDA と CUDNN のインストールとアンインストールの実装

目次序文グラフィックドライバーをインストールするCUDAをアンインストールするCUDAをインストール...

開発効率の向上に役立つ 56 個の実用的な JavaScript ツール関数

目次1. デジタルオペレーション(1)指定された範囲内で乱数を生成する2. 配列操作(1)配列の順序...

MySQL 5.7.9 シャットダウン構文例の詳細な説明

mysql-5.7.9 では、ついにシャットダウン構文が提供されます。以前は、MySQL データベー...

SQL ストアド プロシージャの取得、データ取得、プロセス分析

この記事は主に、SQL のストアド プロシージャから返されたデータを取得するプロセスの分析を紹介しま...

JavaScriptはシンプルな計算機能を実装します

この記事では、参考までに、簡単な計算機能を実装するためのJavaScriptの具体的なコードを紹介し...

CSS 前景と背景の自動カラーマッチング技術の紹介 (デモ)

1. カラーマッチング効果のプレビュー下の GIF に示すように、ボタンの背景色が徐々に薄くなると...

Zabbixを使用してMySQLを監視する方法

Zabbix 導入ドキュメントzabbix導入後zabbixエージェントの操作1. MySQLを監視...

Next.js 入門チュートリアル

目次導入Next.jsプロジェクトを作成するNext.js プロジェクトを手動で作成するcreact...

Firefox で Webdings フォントをサポートする方法

Firefox、Opera、その他のブラウザは Webdings フォントをサポートしていません。回...

Vue 2つのフィールドの共同検証によりパスワード変更機能を実現

目次1. はじめに2. ソリューションの実装2.1 実装コード2.2 コードの説明2.3 検証結果1...

ドメイン名、ポート、IPに基づいてnginx仮想ホストを構築する

nginxでサポートされている仮想ホストには3つの種類があります1. ドメイン名ベースの仮想ホスティ...

CentOS 7.0 (mysql-5.7.21) で複数の MySQL インスタンスを起動する方法

設定手順Linux システム: CentOS-7.0 MySQL バージョン: 5.7.21 Lin...

JS Canvas インターフェースとアニメーション効果

目次概要Canvas API: グラフィックスの描画パス線種矩形アーク文章グラデーションと画像の塗り...