コンポーネント通信の概要コンテンツ
3つの方法
まとめコンポーネント内の状態はプライベートです。つまり、コンポーネントの状態はコンポーネント内でのみ使用でき、コンポーネントの外部で直接使用することはできません。 コンポーネントコミュニケーション - 父から息子へコンテンツ:
コアコード親コンポーネントはデータを提供し、それを子コンポーネントに渡します。 クラス Parent は React.Component を拡張します { 状態 = { lastName: '王' } 与える() { 戻る ( <div> 子コンポーネントにデータを渡します: <Child name={this.state.lastName} /> </div> ) } } サブコンポーネントがデータを受信関数Child(props) { return <div>子コンポーネントはデータを受け取ります: {props.name}</div> } コンポーネント通信 - 子から親へアイデアコールバック関数を使用すると、親コンポーネントがコールバックを提供し、子コンポーネントがそれを呼び出し、渡されるデータがコールバック関数のパラメーターとして使用されます。 ステップ1. 親コンポーネント 1. コールバック関数 f を定義します(データを受信するために使用されます) 2. 関数fを属性の値として子コンポーネントに渡す 2. サブコンポーネント 1. 小道具を使ってfを取得する 2. fを呼び出して子コンポーネントのデータを渡す コアコード親コンポーネントは関数を提供し、それを子コンポーネントに渡します クラス Parent は React.Component を拡張します { 州: { 数: 100 } f = (数値) => { console.log('サブコンポーネントデータを受信しました', num) } 与える() { 戻る ( <div> 子コンポーネント: <Child f={this.f} /> </div> ) } } 子コンポーネントは関数を受け取り、 クラスChildはReact.Componentを拡張します。 ハンドルクリック = () => { // 親コンポーネントから渡されたプロパティを呼び出し、パラメータ this.props.f(100) を渡します。 } 戻る ( <button onClick={this.handleClick}>クリックすると親コンポーネントにデータが渡されます</button> ) } まとめ子から親へ: 親コンポーネントで定義されたメソッドを子コンポーネントで呼び出し、必要に応じてパラメータを渡します。 コンポーネント通信 - ブラザーコンポーネントReact には兄弟コンポーネントというものはなく、状態の昇格のみがあります。 アイデア
コアコード
React をインポートします。{ コンポーネント } を 'react' からインポートします。 'react-dom' から ReactDOM をインポートします。 './Jack' から Jack をインポートします './Rose' から Rose をインポートします クラスAppはComponentを拡張します{ // 1. 状態が親コンポーネントに昇格される state = { メッセージ: ''、 } 与える() { 戻る ( <div> <h1>私はアプリコンポーネントです</h1> <ジャックは言う={this.changeMsg}></ジャック> 2. 子コンポーネントにステータスを表示する*/ <ローズ メッセージ = {this.state.msg}></ローズ> </div> ) } changeMsg = (メッセージ) => { this.setState({ メッセージ、 }) } } // レンダリングコンポーネント ReactDOM.render(<App />, document.getElementById('root')) React をインポートします。{ コンポーネント } を 'react' からインポートします。 デフォルトのクラスJackをエクスポートし、Componentを拡張します。 与える() { 戻る ( <div> <h3>私はジャックコンポーネントです</h3> <button onClick={this.say}>発言</button> </div> ) } 言う = () => { this.props.say('あなたがジャンプすると私が見る') } } React をインポートします。{ コンポーネント } を 'react' からインポートします。 デフォルトクラスRoseをエクスポートし、Componentを拡張します。 与える() { 戻る ( <div> <h3>私はローズコンポーネントです - {this.props.msg}</h3> </div> ) } } コンポーネント通信 - レベル間コンポーネント通信Vueでクロスレベルコンポーネント通信を使用する場合は、Contextを使用する必要があります。 コンテキストを使用する手順3 つのステップがあります。 1. createContextメソッドをインポートして呼び出し、結果からプロバイダとコンシューマのコンポーネントを分解します。 'react' から {createContext} をインポートします。 const { プロバイダー、コンシューマー } = createContext() 2. プロバイダコンポーネントを使用してルートコンポーネントをラップし、値属性を通じて共有するデータを提供します。 戻る ( <プロバイダー値={ここに渡すデータを入力してください}> <ルートコンポーネントの内容/> </プロバイダー> ) 3. 子孫コンポーネントでは、ステップ2でエクスポートしたコンシューマーコンポーネントでコンポーネント全体をラップします。 戻る ( <消費者> { (データ) => { // ここでのパラメータデータはプロバイダーから渡されたデータを自動的に受け取ります // console.log(data) <コンポーネントコンテンツ> を返します。 } } </消費者> ) 着陸コード
'react' から {createContext} をインポートします。 const { プロバイダー、コンシューマー } = createContext() エクスポート { コンシューマー、プロバイダー } ルートコンポーネントの変換 './context' から { Provider } をインポートします。 与える () { 戻る ( <プロバイダー値={{ num: this.state.num }}> <div> ルート コンポーネント、番号: {this.state.num} <親 /> <おじさん /> </div> </プロバイダー> ) } 子孫コンポーネント 'react' から React をインポートします './context' から Consumer をインポートします。 デフォルトのクラスUncleをエクスポートし、React.Componentを拡張します。 与える () { 戻る ( <消費者> {(データ) => { <div>I am Uncle コンポーネント、{data.num} を返します。 }} </消費者> ) } } 要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: ウェブデザインには目的、アイデア、思考、そして粘り強さがなければならない
>>: フロントエンド開発者に何百万ドルもの価値をもたらす 10 のスキル
環境の準備 Docker環境 MySQL 5.7 (公式イメージはmysql8をサポートしていません...
成果を達成する実装コードhtml <div クラス = 'ラッパー'> ...
JavaScript でポインターの位置を取得する方法は、イベント オブジェクトの pageX と ...
目次【機能背景】 [生のSQL] 【独自SQL解析】 【分析手順】 [最適化されたSQL] 【最適化...
CSS を使用する場合は、DOCTYPE (ドキュメント タイプ定義) を記述することを忘れないでく...
最近、次のような効果を達成する必要がある最初は、CSS3D回転を使用して記述すると、次の効果しか得ら...
Composition API はロジック再利用手順を実装します。ロジックコードを関数に抽出します。...
Docker バージョン: [root@localhost gae_proxy]# docker バ...
基本的な準備この実装には、クラス名が ball である単純な div が必要です。 HTMLコード:...
序文少し前に、browser-sync+gulp+gulp-nodemon を組み合わせて、本番環境...
しばらくサーバーいじってなかったけど、やることがなくなったのでモバイルワークスに行って海外サーバーを...
目次1. 書き込み可能: 書き込み可能2. 列挙可能: 列挙可能3. 設定可能: 設定可能オブジェク...
テーブルが 2 つあり、テーブル A のレコードがテーブル B に存在しない可能性があります。左結合...
軽量のオープンソース データベースである MySQL は、エンタープライズ レベルのアプリケーション...
1.ピクセルpx はピクセルの略語で、画面解像度に対する相対的な長さの単位です。 2. えむ参照は親...