1. コンポーネントの実装方法:
1. JS関数を通じてコンポーネントを実装する<div id="アプリ"></div> <script type="text/babel"> var ReactDiv = document.getElementById('app'); 関数 GetReactComp(){ return <p>私はReactコンポーネントです</p> } const hellocomp = < GetReactComp /> //最初の文字を大文字にする const reactSpan = ( <span> { hellocomp } </span> ) ReactDOM.render(reactSpan、ReactDiv) は、 </スクリプト> 2. ES6クラスを通じてコンポーネントを実装する<div id="クラス"></div> <script type="text/babel"> var reactDiv1=document.getElementById('class'); //クラスコンポーネントを定義する class MyReactComp extends React.Component{ 与える(){ 戻る ( <h2>クラスコンポーネント</h2> ) } } //クラスコンポーネントを使用する const testDiv = ( <div>{<MyReactComp/> </div> ) //ReactDOM.render(testDiv,reactDiv1) をマウントします </スクリプト> 2. Propsコンポーネント値の転送React には、props に対する厳格な保護メカニズムがあります。値が与えられると、コンポーネント内で <div id="アプリ"></div> <script type="text/babel"> var reactDiv = document.getElementById('app'); クラスReactClassCompはReact.Componentを拡張します。 与える(){ 戻る ( <div> <p>ユーザー名: <input type="text" value={ this.props.name }/></p> <p>性別: <input type="text" value={ this.props.gender }/></p> </div> ) } } ReactClassComp.defaultProps={ 名前:「劉備」、 性別: '男性' } 定数 reactp = ( <span> {<ReactClassComp />} </span> ) ReactDOM.render(reactdiv,reactdiv) </スクリプト> 注意: 多くの場合、データの更新に合わせてコンポーネントのコンテンツを更新する必要があります。このとき、React が提供する State を使用する必要があります。 3. 状態
1. Reactライフサイクルマウント(マウント):コンポーネントインスタンスが作成され、DOMに挿入されると (1) コンストラクターは次の 2 つの場合にのみ使用されます。
注意: コンストラクター() 関数内で setState() メソッドを呼び出さないでください。内部状態を使用する必要がある場合は、コンストラクターで this.state を直接割り当てて状態を初期化できます。 コンストラクタ(props){ スーパー(小道具); この状態 = { 日付:新しい日付() } this.handleShow = this.handleShow.bind(this) } (2) this.props と this.state の変更をチェックし、次のいずれかの型を返します。
(3)
注: ComponentDidMount() 内で setState() を直接呼び出すことができます。追加のレンダリングがトリガーされますが、このレンダリングはブラウザが画面を更新する前に行われます。これにより、render() が 2 回呼び出されても、ユーザーには中間状態が表示されなくなります。 更新: コンポーネント更新(前のプロパティ){ if(this.props.userID !== prevProps.userID){ this.fetchData(this.props.userID) } } 注意: combositionDidUpdate() で setState() を呼び出す場合は、条件文でラップする必要があります。そうしないと、無限ループが発生します。また、追加の再レンダリングも発生し、ユーザーには見えませんが、コンポーネントのパフォーマンスに影響します。 アンインストール: 2. ライフサイクルインスタンス-->クロック:<div id="アプリ"></div> <script type="text/babel"> var reactDiv = document.getElementById('app') //クラスコンポーネントMyStateCompを定義する クラスMyStateCompはReact.Componentを拡張します。 //コンストラクタ コンストラクタ(props) { スーパー(小道具); // this.state を通じて内部的に状態を初期化します this.state = { 日付:新しい日付()、 表示:false、 テキスト:'表示' } // インスタンスをイベント処理関数にバインドします this.handleShow = this.handleShow.bind(this) } //サブスクリプションを追加するcomponentDidMount() { this.timerID = setInterval(()=>this.tick(),1000) } //時間関数 tick() { this.setState({ //setStateはコンポーネントの状態を更新します 日付:新しい日付() }) } //インスタンスの表示、非表示 handleShow() { this.setState(state=>({ 表示: !state.show, テキスト: !state.show?'非表示':'表示' })) } //コンポーネントのアンインストール: タイマーをクリアするcomponentWillUnmont() { クリア間隔(this.timerID) } 与える() { isShow を this.state.show とします。 要素をletします。 if(isShow){ 要素 = <h2 >{this.state.date.toLocaleTimeString()}</h2> }それ以外{ 要素 = null } 戻る ( <div> <button onClick={this.handleShow}>{this.state.text}時間</button> {要素} </div> ) } } 定数反応スパン = ( <span> {<MyStateComp/> } </span> ) ReactDOM.render(reactSpan、reactDiv) は、 </スクリプト> React State とライフサイクルに関するこの記事はこれで終わりです。React State ライフサイクルに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: mysql5.7.18のインストールと初期パスワードの変更方法
>>: Docker コンテナのデプロイの試み - マルチコンテナ通信 (node+mongoDB+nginx)
この記事では、Web ページの作成を学習するときに注意すべき HTML タグに関するいくつかの問題を...
序文ロックは、複数のスレッドを実行するときにリソースへのアクセスを強制的に制限するために使用される同...
問題の起源私がタイトルの番号付けの問題に初めて注目したのは、学部の論文を書いていた頃まで遡ります。当...
目次1. nginx とは何ですか? 2. nginx で何ができるのか? 2.1 フォワードプロキ...
これは、CSS 3.0 で実装されたテキストのホバーとジャンプ効果です。効果は次のとおりです。 以下...
1: インストールコマンドpip install docker-compose例外情報socket....
目次1. 繰り返し宣言1.1 変数1.2 しましょう1.3 定数2. 可変プロモーション2.1 変数...
目次1. 配列の平坦化(配列の次元削減とも呼ばれる)方法1: 削減メソッドを使用する方法2: スタッ...
最初の方法: docker インストール1. オープンソース版のイメージを取得する2. 対応するデー...
この記事では、Fedora 28 に i3 をインストールして簡単に設定する方法を説明します。 1....
目次序文フラグメントの動機React Fragment の紹介と使用<React.Fragme...
序文MySQL で show create table <tablename> コマンド...
この記事では、入力ボックスコンポーネントを手動で実装するための具体的なコードを参考までに紹介します。...
CSS は div にスクロールを追加し、スクロール バーを非表示にします。具体的なコードは次のとお...
目次1. 仲介業者モデル2. 例1. 見積コンポーネントに購入ボタンを追加する2. 親コンポーネント...