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 ページを仮想の「ウィンドウ」(ビューポート) に配置し...
MGR (MySQL グループ レプリケーション) は、バージョン 5.7 で追加された新しい機能...
ドロップダウンボックス、テキストフィールド、ファイルフィールド 上半分はデモンストレーション効果、下...
まず、MySQL とは何かを簡単に紹介します。簡単に言えば、データベースはデータを格納するための倉庫...
ブラウザがHTMLを読み込みレンダリングする順序1. IE は上から下へダウンロードし、上から下へレ...
nginxでサポートされている仮想ホストには3つの種類があります1. ドメイン名ベースの仮想ホスティ...
目次共通キーエイリアスエイリアスが指定されていないキーシステム修飾キーカスタムキーエイリアス要約する...
目次序文小道具コンテクスト州要約する序文最新のフロントエンド フレームワークはすべて、コンポーネント...
目次必要:機能ポイントレンダリング実装のアイデア具体的なコード(react\taro3.0)特定のコ...
概要: この記事では、Avro データをシリアル化して生成し、FlinkSQL を使用して解析する方...
このセクションでは、テキストの変更の詳細から始めます。これにより、読者はさまざまな HTML フォン...
序文面接中、多くの面接官は「keep-alive が何をするのか知っていますか?」と質問する際に V...
この記事では、携帯電話のプルダウンリフレッシュを模倣したjsの具体的なコードを参考までに共有します。...
基本的な HTML Web ページ タグのネスト ルールを紹介する場合、最初に説明する必要があるのは...
序文そこでこのブログを書きました。このブログでは大物の記事からいくつかの知識も推奨しています。侵害が...