React fragments, portals, refs
JSX Limitation
特に一般的な制限要因です.
すなわち、すべての要素は、1つの最上位レイヤに囲まれなければならない.
Fragments
制限要因を回避するために、
もちろん、それでもアプリケーションは実行時に問題が発生しない可能性がありますが、これは良いコードではありません.
最終的に
ここにはいい解決策がある.ELINMENTの代わりに
すべての
たとえば、
一般に、
ここでは悪い習慣が現れます.
戦区を埋め尽くした
そのため、
要素は、
値を1つだけ読み込む場合は、
しかしながら、極端な
あるいは両方使っても大丈夫です
どちらが良いかではなく、開発者本人の意志次第です.
最良の方法は、コードの状況に応じて柔軟に判断し、使用することである.
Uncontrolled Component
これらの構成部品は、
これを内部状態(内部状態処理)と呼ぶ.
逆に、
これは、業界やコミュニティでコードを書くのに役立つものではありません.これは良いセグメントです.
JSX
のうちLimitation (제한요소)
があります.特に一般的な制限要因です.
すなわち、すべての要素は、1つの最上位レイヤに囲まれなければならない.
Fragments
制限要因を回避するために、
<div>
に複数の構成部品を包むと、問題が発生する可能性がある.<div> soup
は不要な<div>
層を積み重ねている.もちろん、それでもアプリケーションは実行時に問題が発生しない可能性がありますが、これは良いコードではありません.
最終的に
<div> soup
のオーバーラップが激しくなると、アプリケーションは遅くなるしかありません.ここにはいい解決策がある.ELINMENTの代わりに
<div>
でProps.children
に返信すればいいですしたがって、そのコードを使用することはますます多くなり、React
エンドは、props.children
を返す内蔵関数、すなわちFragments
を簡単に作成します.return (
<React.Fragment>
…
</React.Fragment>
)
// short_cut
return (
<>
…
</>
)
PortalsPortals
はよりクリーンなコードを提供し、Fragments
と同様の特徴を有する.すべての
React
コードは、通常、1つのroot
ユニットに重畳される.たとえば、
error-handling
のmodal
テンプレートを作成します.一般に、
modal
ウィンドウはoverlay
と組み合わせて使用され、多くの場合、overlay
はhtml
グローバルを充填する.ここでは悪い習慣が現れます.
戦区を埋め尽くした
modal
窓口はroot
ユニット内部に属する.bad_practice // (for html)
<div id=‘root’>
<div>
<div class=‘modal’>
...
</div>
</div>
</div>
もしそうなら、私たちはこれらの部分を変えることができますか?Good_practice // (for html)
<div class=‘modal’>
...
</div>
<div id=’root’>
…
</div>
これならもっと読みやすいですよね?そのため、
portals
を使用します.portals
を使用するには、react-dom
を使用します.要素は、
reactDOM.createPortal()
によって所望の位置に移動することができる.import ReactDOM from ‘react-dom’;
return (
…
{ReactDOM.createPortal
(
component, //<BackDrop />
position where do you want to move, // document.getElementById()
)
}
Refs (References)Refs
はreact
で非常に強力な機能を持っています.Refs
は、DOM API
への直接アクセスを可能にする.useRef()
を使用すると、対応する値にネイティブDOM data
を格納できます.import React, {useRef} from ‘react’
const nameRef= useRef();
…
console.log(nameRef)
// => {current : div#…}
Return (
<div ref={nameRef}>
</div>
)
State vs Refs値を1つだけ読み込む場合は、
Refs
が有効です.States
を使用する場合、必要でない場合や、重複するコードを記述する必要がある場合が多い.しかしながら、極端な
DOM
の動作は、コードを乱し、React
が重視するデータの不変性を破壊する可能性があるため、このような状況を考慮すると、State
がより良好になる可能性がある.State
のみ、またはRefs
のみを使用します.あるいは両方使っても大丈夫です
どちらが良いかではなく、開発者本人の意志次第です.
最良の方法は、コードの状況に応じて柔軟に判断し、使用することである.
Uncontrolled Component
refs
を使用する要素はUncontrolled Component (통제 불가능한 컴포넌트)
である.refs
を使用してDOM API
に直接アクセスし、データを変更します.これらの構成部品は、
React(state)
に変更できません.これを内部状態(内部状態処理)と呼ぶ.
逆に、
React
によって修正可能な要素をControlled Component
と呼ぶ.これは、業界やコミュニティでコードを書くのに役立つものではありません.これは良いセグメントです.
Reference
この問題について(React fragments, portals, refs), 我々は、より多くの情報をここで見つけました https://velog.io/@beberiche/React-Fragments-portals-refsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol