React の核の 1 つはコンポーネントです。次の記事では、ポータルの再利用可能なコンポーネントのカプセル化に関する React チュートリアルに関する関連情報を主に紹介します。必要な方は参照してください。以下、一緒に学びましょう。
ポータルの紹介
したがって、次のことを行うユニバーサルコンポーネントが必要です:
はコンポーネント内で宣言的に書くことができます
は宣言された場所を実際にはレンダリングしません
遷移アニメーションをサポートします
そして、モーダル、ツールチップ、通知などのコンポーネントは、このコンポーネントに基づいて作成できます。このコンポーネントをポータルと呼びます。
React16+ を使用している場合は、少なくとも Portal について知っているか、Portal の使用に習熟している必要があります。
ポータルはルート要素の外側に DOM を作成できます。
1. 通常、Web サイトにはルートが 1 つしかありません
<body> <p id="root"></p> </body>
2. ポータルを使用すると、次のようになります
ポータルのハイエンドコンポーネントのカプセル化
公式 Web サイトでご覧ください。私たちが達成したいのは、それを再利用可能なコンポーネントにカプセル化することです。目標
本文の下にHTMLを手動で追加する必要はなく、コンポーネントを通じて自分で作成します。<body> <p id="root"></p> <p id="portal"></p> </body>
実装計画
1. Portalコンポーネントを返すcreatePortal関数を作成します<CreatePortal id, //可以传入id className, //可以传入className style //可以传入style > 此处插入p或者react组件 </CreatePortal>
function createPortal() { } export default createPortal()
import React from 'react' import ReactDOM from 'react-dom' import PropTypes from 'prop-types' function createPortal() { class Portal extends React.Component{ } return Portal } export default createPortal()
render() { return ReactDOM.createPortal( this.props.children, this.el ) }
componentDidMount() { document.body.appendChild(this.el); }
vuexの中国語ドキュメントの詳細な紹介
以上がReact を使用して Portal の再利用可能なコンポーネントをカプセル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。