コンポーネントの props (props はオブジェクトです)機能: コンポーネントに渡されたデータを受信する 特徴:
小道具<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')) </スクリプト> 小道具の制限
<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 } } } })
プロパティはコンポーネント インスタンスが作成される前に検証されるため、インスタンス プロパティ (データ、計算など) はデフォルト関数または検証関数では使用できません。 型チェック 弦 番号 ブール 配列 物体 日付 関数 シンボル さらに、type は、instanceof でチェックされるカスタム コンストラクターにすることもできます。たとえば、次のような既成のコンストラクターがあるとします。 関数 Person (firstName, lastName) { this.firstName = ファーストネーム this.lastName = 姓 } 以下を使用できます: Vue.component('ブログ投稿', { 小道具: { 著者: 人物 } }) author プロパティの値が新しい Person によって作成されたことを確認します。 React における props の使用と制限に関するこの記事はこれで終わりです。React props の制限に関する詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL がユーザー名とパスワードの漏洩を引き起こす可能性のある Riddle の脆弱性を公開
>>: Nginx プロキシを使用してインターネットを閲覧する方法
まずMySQLのインストールMySQLソフトウェアをダウンロードし、インストールパスを変更しますMy...
誰もがボックス モデルの構成を、内側から外側まで、コンテンツ、パディング、境界線、マージンについて知...
目次序文グラフィックドライバーをインストールするCUDAをアンインストールするCUDAをインストール...
目次1. デジタルオペレーション(1)指定された範囲内で乱数を生成する2. 配列操作(1)配列の順序...
mysql-5.7.9 では、ついにシャットダウン構文が提供されます。以前は、MySQL データベー...
この記事は主に、SQL のストアド プロシージャから返されたデータを取得するプロセスの分析を紹介しま...
この記事では、参考までに、簡単な計算機能を実装するためのJavaScriptの具体的なコードを紹介し...
1. カラーマッチング効果のプレビュー下の GIF に示すように、ボタンの背景色が徐々に薄くなると...
Zabbix 導入ドキュメントzabbix導入後zabbixエージェントの操作1. MySQLを監視...
目次導入Next.jsプロジェクトを作成するNext.js プロジェクトを手動で作成するcreact...
Firefox、Opera、その他のブラウザは Webdings フォントをサポートしていません。回...
目次1. はじめに2. ソリューションの実装2.1 実装コード2.2 コードの説明2.3 検証結果1...
nginxでサポートされている仮想ホストには3つの種類があります1. ドメイン名ベースの仮想ホスティ...
設定手順Linux システム: CentOS-7.0 MySQL バージョン: 5.7.21 Lin...
目次概要Canvas API: グラフィックスの描画パス線種矩形アーク文章グラデーションと画像の塗り...