前回は状態について説明しました。次は、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のその他の関連記事もぜひご注目ください! 以下もご興味があるかもしれません:
|
最近、古い RN プロジェクトを Xcode で実行すると、次のコード エラーが報告されました。 &...
目次1. 準備2. グローバルコンポーネント quill-editor を定義する1. テンプレート...
目次問題の説明MySQLオンラインDDLで列を追加する従来の方法01 コピー方法02 インプレースメ...
非常に大量のデータ(数百 GB)を計算する必要があったことはありますか?または、その内部を検索したり...
簡単に言うと、srcは「このリソースをロードしたい」という意味で、hrefは「このリソースに関連付け...
初めて仮想マシンに MySQL をインストールしたとき、多くの問題が発生しました。ここでそれらを書き...
社内の同僚は Nginx ログの標準出力、つまりコンソール経由の処理を必要としているため、まずログを...
Iframe Web ページのナビゲーション ウィンドウに関する簡単な説明 Iframe ウェブペー...
ホスト名を変更する場合は、以下の手順に従ってください。ホスト名の使用hostnameコマンドを使用す...
FTP は主にファイル転送に使用され、Linux では vsftpd で実装されるのが一般的です。F...
この記事では、支払いの10秒カウントダウンを実現するためのJavaScriptの具体的なコードを参考...
1. 属性付きHTMLタグXML/HTML コードコンテンツをクリップボードにコピー< htm...
現在、プロジェクトを作成しました。インターフェースは次のとおりです。これはフレームセットを使用して行...
この記事では、CSS で 2 つの固定列と 1 つのアダプティブ列を実装するいくつかの方法を紹介し、...
図に示すように: しかし、IE6で表示すると、right:1px:になります。 IE6 には、幅と高...