検索

  用react一年多了.一直是在别人的影子下写的代码,他们也确实都是大神级的人物,不过,小菜鸟也有小菜鸟的思想~这不,今天就在重温一遍react!记一些零碎的知识点~所有的这些均参考于  

  react官方文档 facebook.github.io/react/docs/events.html#supported-events

  1  var names = ['fr','de']

   ReactDOM.render(

    (1)

你好,学长

    document.getElementById('h1')

 

    (2)

      {

        names.map(function(name){

          return

Hello {name}

        })

      }

     

document.getElementById('h1')

)

ReactDom.renderはReactの基本構文です 用途:テンプレートをHTMLに変換し、指定したDOMノードを挿入します

reactの特殊な構文: JSX 上記の例ではMixingが可能です。 HTML と JavaScript の基本的な文法規則: 1. で始まる HTML タグに遭遇すると、HTML 規則を使用して解析されます。 {} で始まるコード ブロックに遭遇すると、それは HTML 規則を使用して解析されます。 JavaScript

コンポーネント: React では、通常の HTML タグを挿入するのと同じように、コードをコンポーネントにカプセル化して、このコンポーネントを Web ページに挿入できます。コンポーネント クラスの生成には React.createClass が使用されます。コンポーネント クラスは 1 つだけを持つことができます。これは間違っています。2 つのタグの一番外側に

タグが含まれている必要があります

コンポーネントの使用方法は、HTML タグのプロパティと同じです。注意すべき点が 1 つあります。class と for は JavaScript の予約語であるため、class と for 属性を変更する必要があります

。コンポーネントの属性は 1 対 1 で表されますが、this.props.children プロパティには 3 つの可能性があります。子ノードがない場合は、undefine を意味します。子ノードが 1 つである場合、それはオブジェクトを意味します。複数の子ノードがある場合、それは配列を意味します。属性: コンポーネント インスタンスのプロパティが要件を満たしているかどうかを確認します。 は、次のような属性タイプを定義するために使用される構成オブジェクトです。 実際の DOM ノードを取得します: this.refs.[refName]

を使用します。 this.state と this.props はどちらもコンポーネントの特性を記述します。違いは、this.state は変更できる特性を指しますが、this.props は一度定義すると変更できない特性を指します

react ライフサイクル:

。 -[] React コンポーネントのライフサイクルは 3 つの部分に分かれています: 1 実際の DOM が挿入されました: マウント (インスタンス化)、2 更新中: 再レンダリング中 (存在期間) 3 本物の DOm が削除されました (破棄) & クリーンアップ期間)、具体的なシーケンスは次のとおりです propTypes

- [注] サーバー側のレンダリング プロセス中には、componentDidMount は呼び出されません。

-[解決策] 各サイクルの詳細な説明:

getDefaultProps

各コンポーネントインスタンスに対して、このメソッドはコンポーネントクラスの後続のすべてのアプリケーションで一度だけ呼び出され、返されるメソッドは再度呼び出されません。オブジェクトを使用して、デフォルトの props (プロパティの略語) 値を設定できます。

getInitialState

このメソッドは

、各インスタンスの状態を初期化するために一度だけ呼び出されます。このメソッドでは、コンポーネントのプロパティにアクセスできます。各 React コンポーネントには独自の状態があり、状態がコンポーネント内にのみ存在する点でプロップとは異なりますが、プロップはすべてのインスタンス間で共有されます。 getInitialState と getDefaultPops の呼び出しには違いがあります。getDefaultPops はコンポーネント クラスに対して 1 回だけ呼び出され、このクラスの後続のアプリケーションは呼び出されません。一方、getInitialState はコンポーネント インスタンスごとに 1 回だけ呼び出されます。

状態が変更されるたびにコンポーネントは再レンダリングされ、インスタンス化後、コンポーネントは状態を通じて更新され、次のメソッドが順番に呼び出されます:

1、 shouldComponentUpdate

2、componentWillUpdate

3 、render

4、componentDidUpdateただし、

直接変更しないでください。 this.state は this.setState メソッドを通じて変更する必要があります。

ComponentWillMount

このメソッドは最初のレンダリングの前に呼び出され、render メソッドを呼び出す前に状態を変更する最後の機会でもあります。


render

このメソッドは、コンポーネントの出力を表す仮想 DOM を作成します。コンポーネントの場合、必須のメソッドは render メソッドのみです。 render メソッドは次の点を満たす必要があります:

this.props と this.state を通じてのみデータにアクセスできます (変更できません)

null、false、または任意の React コンポーネントを返すことができます

1 つだけトップレベルはコンポーネントとして表示できます。要素のセットを返すことはできません

コンポーネントの状態を変更することはできません
  1. DOMの出力を変更することはできません
  2. renderメソッドによって返された結果は実際のDOMではありません要素ですが、DOM ツリー構造オブジェクトに似た仮想表現です。これが、react が非常に効率的である理由です。
  3. componentDidMount

    このメソッドはサーバー側のレンダリングプロセス中には呼び出されません。このメソッドが呼び出されると、実際の DOM がレンダリングされます。このメソッドの this.getDOMNode() を通じて実際の DOM にアクセスできます (ReactDOM.findDOMNode())。コンポーネントは実際の DOM ノードではなく、仮想 DOM と呼ばれるメモリ内に存在するデータ構造であるためです。ドキュメントに挿入された場合にのみ、実際の DOM になります。コンポーネントから実際の DOM ノードを取得する必要がある場合は、<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/001/40fe3b2de3f832eec8ee102dfc0e43cc-3.png?x-oss-process=image/resize,p_40" class="lazy" alt=""><code>this.getDOMNode() 访问到真实的 DOM(推荐使用 ReactDOM.findDOMNode())。由于组件并不是真实的 DOM 节点,而是存在于内存之中的一种数据结构,叫做虚拟 DOM (virtual DOM)。只有当它插入文档以后,才会变成真实的 DOM 。有时需要从组件获取真实 DOM 的节点,这时就要用到 ref 属性:如:

          componentWillReceiveProps

            组件的 props 属性可以通过父组件来更改,这时,componentWillReceiveProps 将来被调用。可以在这个方法里更新 state,以触发 render 方法重新渲染组件。

          shouldComponentUpdate

            如果你确定组件的 props 或者 state 的改变不需要重新渲染,可以通过在这个方法里通过返回 false

    componentWillReceiveProps

    コンポーネントの props プロパティは親コンポーネントを通じて変更できます。このとき、将来的にはcomponentWillReceivePropsが呼び出されます。このメソッドの状態を更新して、render メソッドをトリガーしてコンポーネントを再レンダリングできます。

    shouldComponentUpdate

    コンポーネントのプロパティや状態の変更に再レンダリングが必要ないことが確実な場合は、このメソッドで false を返すことでコンポーネントの再レンダリングを防ぐことができます。 `false を返すと、再レンダリングは必要なくなり、render および後続のcomponentWillUpdate メソッドとcomponentDidUpdate メソッドが実行されます。

    このメソッドはオプションであり、ほとんどの場合開発では使用されません。 componentwillupdate 'in forward in / >>この方法は、コンポーネントが新しい小道具または状態を受信し、再レンダリングしようとしている場合、componentwillupdate(object nextprops、object nextstate)が呼び出されます。 この点に関しては更新しないように注意してください。

    ComponentDidUpdate

    このメソッドは、コンポーネントが再レンダリングされた後、componentDidMount と似ています。ここから DOM にアクセスして変更できます。

    🎜 componentWillUnmount🎜🎜🎜 私たちin in in ininging in on in in in では、このコンポーネントを DOM からアンロードしてから破棄する必要があります。この時点で、追加されたすべてのクリーンアップと破棄の作業を完了するために、componentWillUnmout が実行されます。このメソッドで作成したタイマーやイベント リスナーなどを再インストールする必要があります。 🎜

以上が反応に関する詳しい知識の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
C/CからJavaScriptへ:すべてがどのように機能するかC/CからJavaScriptへ:すべてがどのように機能するかApr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScript:Web言語の汎用性の調査JavaScript:Web言語の汎用性の調査Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの進化:現在の傾向と将来の見通しJavaScriptの進化:現在の傾向と将来の見通しApr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

javascriptの分解:それが何をするのか、なぜそれが重要なのかjavascriptの分解:それが何をするのか、なぜそれが重要なのかApr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。