前回は状態について説明しました。次は、props について説明しましょう。 props の機能は、コンポーネント (親子コンポーネント) 間の通信です。まず、さまざまなコンポーネントでの使用方法について説明します。 クラスコンポーネント//親コンポーネントの値を渡すクラス Father extends React.PureComponent{ 与える(){ 戻る ( <息子値={"息子"} /> ) } } クラスSonはReact.PureComponentを拡張します{ 与える(){ 戻る ( <div>このデータは {this.props.value} です</div> ) } } 機能コンポーネント関数Fa(){ 戻る ( <息子値={"息子"} /> ) } 関数Son(props){ 戻る ( <div>このデータは {props.value} です</div> ) } 関数コンポーネントでは、propsは値を渡すだけでよいので非常に便利です。Reactのドキュメントでは、propsの説明は
したがって、propsを介して親コンポーネントによってアップロードされた値を取得でき、 プロパティは読み取り専用ですReactはドキュメントで強調している
redux の純粋関数の概念についてはすでに説明しました。簡単に言うと、props の値を変更することはできません。 コンポーネント間通信ここで、コンポーネント間の通信をまとめてみましょう。
// 親コンポーネントから子コンポーネントに値を渡すことについては既に説明しました。次に、子コンポーネントが親コンポーネントに値を渡す方法をまとめます。このとき、親コンポーネントは最初に子コンポーネントに props 関数を渡す必要があることがよくあります。子コンポーネントは渡された関数を呼び出して親コンポーネントの値を変更します export default class Fa extends Component { 状態 = {faValue:'Fa1'} changeFa = (値)=>{ this.setState(()=>{ {faValue:値}を返す }) } 与える() { 戻る ( <> <h1>Fa の値は {this.state.faValue}</h1> です <Son changeFa={this.changeFa}/> </> ) } } デフォルトのクラスSonをエクスポートしてReact.PureComponentを拡張します{ 変更値 = ()=>{ this.props.changeFa(this.inputRef.value) } 与える() { 戻る ( <> <input type="text" placeholder={"値を入力してください"} ref={(el)=>{this.inputRef = el}}/> <button onClick={this.changeValue}>変更</button> </> ) } } 次に関数コンポーネントを記述します。 関数Fa(){ const [faValue,setFaValue] = useState("Fa1") const changeFa = (値)=>{ setFaValue(値) } 戻る ( <div> <h1>Fa の値は {faValue}</h1> です <息子 changeFa={changeFa} /> </div> ) } 関数Son(props){ 定数 inputValue = useRef("") //faコンポーネントの値を変更する関数を定義します。const changeFaValue = ()=>{ props.changeFa(入力値の現在の値) } 戻る ( <> <input type="text" placeholder={"変更したい値を入力してください"} ref={inputValue}/> <button onClick={changeFaValue}>値を変更</button> </> ) }
これは弱められたリダックスとして理解できます。ここでは、ライブラリ pubsub-js を使用して記述します。書き方は以下の通りです。 // たとえば、前の入力ケースでは、brother コンポーネントに値を渡す必要があります。props を使用しない場合、Bro はどのように記述すればよいでしょうか。 デフォルトクラス Bro をエクスポートして Component を拡張します { コンポーネントマウント() { this.sonData = PubSub.subscribe("brother",(msg,data)=>{ console.log("Bro コンポーネントがメッセージを受信しました",data); }) } コンポーネントのマウントを解除します(){ PubSub.unsubscribe(this.sonData) } 与える() { 戻る ( <> <div>兄弟</div> </> ) } } 息子: デフォルトのクラスSonをエクスポートしてReact.PureComponentを拡張します{ 変更値 = ()=>{ PubSub.publish("brother",this.inputRef.value) } 与える() { 戻る ( <> <input type="text" placeholder={"値を入力してください"} ref={(el)=>{this.inputRef = el}}/> <button onClick={this.changeValue}>変更</button> </> ) } } このメソッドでは、通常 3 つの API が使用されます。最初の API は subscribe で、対応するイベントを公開し、イベントで何を行うかを定義します。 2 番目は publish で、公開されたイベントをサブスクライブし、変更する対応する値を渡します。 3 番目は unsubscribe で、公開をキャンセルしてメモリを最適化するために使用されます。 以上がReactの3大属性の1つであるpropsの使い方を詳しく解説した内容です。Reactの3大属性の1つであるpropsについてさらに詳しく知りたい方は、123WORDPRESS.COMのその他の関連記事もぜひご注目ください! 以下もご興味があるかもしれません:
|
序文MySQL は最も人気のあるリレーショナル データベース管理システムです。WEB アプリケーショ...
esインストール docker pull elasticsearch:7.4.0 # -d : バッ...
目次序文原因を発見するカスタムフィルタリングルール要約する序文インターネットの急速な発展に伴い、情報...
VMwareaのインストールプロセスは説明しませんが、主にwin7イメージをロードする方法を説明しま...
XML/HTML コードコンテンツをクリップボードにコピー< div style = &quo...
この記事の目的は、これらの概念とその機能の関係を明らかにすることです。 Mysql がトランザクショ...
序文最近、小さなデモを作成しました。大規模な工場のオンライン データを使用したため、インターフェイス...
この記事では、参考までに、ビデオアップロード機能を実現するためのVueの具体的なコードを紹介します。...
MySQL タイム ブラインド インジェクションの 5 つの遅延方法 (PWNHUB の予期しない解...
目次1. 組み込みオブジェクトの紹介1.1 数学オブジェクト1.2 数学における方法1.3 日付オブ...
この記事では主に、レイアウトに役立つ、HTML ページ内の一部のコンテンツを固定してスクロール時にス...
今日のレスポンシブ レイアウトの要件では、サイズを自動的に調整できる多くの要素で高さと幅の適応を実現...
1. transform 属性を使用して、画像を拡大せずに表示します (パスの問題は必要に応じて修正...
Web デザインは科学であると同時に芸術でもあります。 Web デザイン作業は、半分は適切なプログラ...
時間フィールドを作成するときデフォルトのCURRENT_TIMESTAMPデータを挿入する際、このフ...