1. 2 つの setState を何回呼び出すのですか?次のコードに示すように、 ボタンをクリックすると、 回答:各 状態 = { カウント: 0 }; ハンドルクリック = () => { this.setState({ count: this.state.count + 1 }); this.setState({ count: this.state.count + 1 }); }; 与える() { console.log(`レンダリング`); 戻る ( <> <div>現在のカウント: {this.state.count}</div> <button onClick={this.handleClick}>追加</button> </> ); } 常識的に考えると、ボタンが初めてクリックされたとき、 ブラウザで上記のコードを実行するだけです: 最初、ページには その理由は、React が複数の これは、上記のコードで 2. 2 つの setState のうち、どちらが呼び出されますか?しかし、上記のコードでは、React がマージされた後にどの 状態 = { カウント: 0 }; ハンドルクリック = () => { this.setState({ count: this.state.count + 1 }); this.setState({ count: this.state.count + 2 }); // +2 に変更 }; 与える() { console.log(`レンダリング`); 戻る ( <> <div>現在のカウント: {this.state.count}</div> <button onClick={this.handleClick}>追加</button> </> ); } ブラウザでもう一度実行します。 結果は、ボタンをクリックした後、 3. setTimeout に 2 つの setState が配置されていますか?クリック イベント関数にタイマー 状態 = { カウント: 0 }; ハンドルクリック = () => { タイムアウトを設定する(() => { this.setState({ count: this.state.count + 1 }); this.setState({ count: this.state.count + 2 }); }, 0); }; 与える() { console.log(`レンダリング`); 戻る ( <> <div>現在のカウント: {this.state.count}</div> <button onClick={this.handleClick}>追加</button> </> ); } 実行結果: 結果は、ボタンをクリックした後、 これは、React の合成イベントおよびライフサイクル関数で 4. 結論
React には、合成イベントとライフサイクル関数のパフォーマンス最適化メカニズムがあります。複数の React のパフォーマンス最適化メカニズムをバイパスして、ネイティブイベントまたは React で複数の setStates が何回呼び出されるかについてはこれで終了です。React で複数の setStates が何回呼び出されるかの詳細については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: すべてのブラウザとの完全な互換性を実現するために最適なプリセットを選択してください
目次1. ダウンロード2. インストールと解凍3. Tomcatを起動する4番目に、インストールが成...
この記事ではMySQL 8.0.11のインストールと設定方法を参考までに記録します。具体的な内容は以...
また、多くの場合、メンテナンスのために Web サイトを少なくとも数分間オフラインにする必要がありま...
Vue データの双方向バインディング原則ですが、この方法には欠点があり、配列とオブジェクトの部分的な...
目次仮想DOMとは何ですか?なぜ仮想DOMが必要なのでしょうか?仮想 DOM はどのようにして実際の...
目次01 コンテナの一貫性02 レイヤーの概念03 レイヤードデザインの利点今日はコンテナ レイヤー...
目次要件の説明問題の説明問題分析問題解決質問の拡張要件の説明このプロジェクトでは、まずユーザーが質問...
目次ミックスインの実装フック関数のマージプロジェクト実践伸ばす要約するVue は mixins AP...
目次元の配列を変更しない方法1. 連結文法:パラメータ:戻り値: 2. 参加する文法:パラメータ:戻...
序文ご存知のとおり、Linux は ext4、ext3、ext2、sysfs、securityfs、...
個人的にはインストール版よりも解凍版の方がインストールしやすいと思います。早速、解凍版のインストール...
序文:パーティショニングはテーブル設計パターンです。一般的に、テーブル パーティショニングとは、条件...
目次解決策1: EUIの転送コンポーネントをコピーして変更し、プロジェクトディレクトリに導入する解決...
目次1.Nuxtサーバーサイドレンダリングアプリケーションの展開(SSRサーバーレンダリング)利点:...
この記事では、ドラッグアンドドロップやクリックによる画像のアップロードを実現するためのVueの具体的...