必要コンポーネントを自分で書きました。コンポーネントを参照するときに、コンポーネント内に内容を記述し、記述した内容をコンポーネント側で認識して制御できるようにしたいです。Vueを使ったことがある生徒なら、すぐにスロットを思い浮かべるはずです。Reactもスロットに対応しています。次に、Reactを使ってスロットに対応したコンポーネントを開発します。 コアアイデア親コンポーネントから子コンポーネントに渡される 3 つの div は、デフォルトで props を通じて子コンポーネントに渡され、子コンポーネント内の子のレンダリングを制御できるようになります。 コアコード // 015 'react' から React をインポートし、スロットを使用します。 'react-dom' から ReactDOM をインポートします。 // 親コンポーネントクラス ParentDom は React.Component を拡張します { コンストラクタ(props) { スーパー(小道具) この状態 = { 聞いたデータ: "ヘッダーデータ", footData: "下部データ", contentData: 「コンテンツデータ」 } } コンポーネントマウント() { } 与える() { 戻る ( <div> <h1>015スロットの使用</h1> <チャイルド ドメイン> <div data-position="heard" >これがヘッダーです</div> <div data-position="content" >これはコンテンツ丨{this.state.contentData}</div>です <div data-position="foot" >これが一番下です</div> </ChildDom> </div> ) } } // 子コンポーネントクラス ChildDom は React.Component を拡張します { コンストラクタ(props) { スーパー(小道具) } 与える() { 聞かせて、満足して、足で; this.props.children.forEach(item =>{ if(item.props['data-position'] == 'heard'){ 聞いた = 項目 }そうでない場合、item.props['data-position'] == 'content'){ コンテンツ = アイテム }そうでない場合、item.props['data-position'] == 'foot'){ 足 = アイテム } }) 戻る ( <div> 要素 <p>私はサブコンポーネントです</p> <div className="聞いた"> {聞いた} </div> <div クラス名="コンテンツ"> {コンテンツ} </div> <div className="foot"> {足} </div> </div> ) } } エクスポートデフォルト関数(){ ReactDOM.render() は、 <親ドメイン />, ドキュメント.クエリセレクタ("#example15") ); } 表示効果 Reactでスロットを実装する2つの方法React コンポーネントに記述した内容は props にマウントされるので、これを利用して Vue と同様のスロット機能を実装することができます。 これは最も外側のコードです React をインポートします。{ コンポーネント } を 'react' からインポートします。 './NavBar' から NavBar をインポートします './NavBar2' から NavBar2 をインポートします デフォルトクラスAppをエクスポートし、Componentを拡張します。 与える() { 戻る ( <div> <ナビゲーションバー> <span>ああ</span> <strong>bbb</strong> <a href="/#" rel="外部 nofollow" rel="外部 nofollow" >ccc</a> </ナビゲーションバー> <NavBar2 左スロット={<span>aaa</span>} センタースロット={<strong>bbb</strong>} rightslot={<a href="/#" rel="external nofollow" rel="external nofollow" >ccc</a>}/> </div> ) } } 1. this.props.children[index]を使用する React をインポートします。{ コンポーネント } を 'react' からインポートします。 './style.css' をインポートします デフォルトクラス NavBar をエクスポートして Component を拡張します { 与える () { 戻る ( <div className="ナビゲーションバー"> <div className="nav-left"> {this.props.children[0]} </div> <div className="nav-center"> {this.props.children[1]} </div> <div className="nav-right"> {this.props.children[2]} </div> </div> ) } } 2. 直接的な名前を使用する React をインポートします。{ コンポーネント } を 'react' からインポートします。 './style.css' をインポートします デフォルトクラス NavBar をエクスポートして Component を拡張します { 与える () { const {leftslot, centerslot,rightslot} = this.props 戻る ( <div className="ナビゲーションバー"> <div className="nav-left"> {左スロット} </div> <div className="nav-center"> {センタースロット} </div> <div className="nav-right"> {右スロット} </div> </div> ) } } React スロットの使い方に関するこの記事はこれで終わりです。React スロットに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: CSS を使用してデータ ホットスポット効果を実現する方法
1. 現在、Pythonのバージョン管理ツールは数多く存在します。その中でも比較的使いやすいのがPy...
RFC793 ドキュメントの SYN フラグを持つプロセス パケットはデータを伝送できません。つま...
今日の画面解像度は、320 ピクセル (iPhone) ほど小さいものから、2560 ピクセル以上 ...
MySQL の一般的なシナリオ: 2 つのデータ セットの交差と差を取得するステップ1. 2つのコレ...
この記事では、マウスをスライドすると愛が広がる js 特殊効果を紹介します。効果は次のとおりです。 ...
app.js: スタートアップファイル、またはエントリファイルpackage.json: プロジェク...
1. はじめに以前、「MySQL マスター スレーブ同期の原理」という記事を書きました。この記事を読...
インストールの提案: インストールには .exe を使用せず、圧縮パッケージを使用してください。これ...
以前、開発中に背景レイヤーにカラーマスクを追加する必要のあるプロジェクトに遭遇しました。ここでは、背...
私たちが構築しようとしていたウェブサイトには、長い文章だけでなく、多数の表も含まれており、表のレイア...
目次502 不正なゲートウェイ エラーの発生1. 502 不正なゲートウェイ エラーとは何ですか? ...
<br />原文: http://uicom.net/blog/?p=762 Faceb...
この記事では、vue+element-uiでヘッドナビゲーションバーコンポーネントを実装するための具...
日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...
設置環境1. gccのインストールnginxをインストールするには、まず公式サイトからダウンロードし...