前回は状態について説明しました。次は、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のその他の関連記事もぜひご注目ください! 以下もご興味があるかもしれません:
|
目次1. 画像1. 鏡とは何ですか? 2. 画像の構成と目的(1) Dockerファイル(2)スクラ...
1. mysqlbinlog: [エラー] 不明な変数 'default-character...
SVN サービスのバックアップ手順1. ソースサーバーとターゲットサーバーを準備するソースサーバー:...
ローカル データベースがサーバー データベースに接続されているときに発生する 1045 の問題を解決...
独自のWebプロジェクトをtomcatディレクトリの下のwebappsディレクトリに配置します。 R...
目次1. 準備1. 環境を整える2. インストール方法3. ネットワークカードの構成2. インストー...
最新のパーフェクト アロエ ベラ ジェルのパッケージ ボックスには、赤いフォントで完璧な英語の文字が...
ファイルとは何ですか?すべてのファイルは実際には文字列のストリームですが、適切な解析方法を使用すると...
BEM は、Web 開発に対するコンポーネントベースのアプローチです。ユーザー インターフェイスを独...
1: openssl とは何ですか? その機能は何ですか?適用シナリオは何ですか? Baidu 百科...
私のプロジェクトの特定の機能ではサーバーが rabbitmq にメッセージを送信する必要があるため、...
目次1. スクリプトを使用してDockerのTLSを暗号化する2. Dockerの設定を変更してリモ...
目次Django でのタイムゾーン設定USE_TZ=真USE_TZ=偽Linux コンテナでのタイム...
HTML5 で contentEditable 属性が導入されて以来、div は textarea ...
1. 関連ツールと画像をダウンロードするダウンロードリンクバーチャルボックス: https://do...