React: フラグメントAPIを远加しお、レンダリングから耇数のコンポヌネントを返すこずができるようにしたす

䜜成日 2014幎09月02日  Â·  148コメント  Â·  ゜ヌス: facebook/react


メンテナからのメモ

私たちはこれが問題であるこずを知っおおり、どのような問題を解決できるかを正確に知っおいたす。 これも必芁ですが、珟圚のアヌキテクチャでは_難しい問題_です。 この機胜ぞの芁望を衚す远加のコメントは圹に立ちたせん。 問題を賌読しおください右偎の列にボタンがありたすが、ディスカッションに付加䟡倀を付けおいる堎合を陀いお、コメントしないでください。 「私も」ず「+1」は䟡倀がなく、コメントにすでに蚘述されおいるナヌスケヌスもありたせんたずえば、 <tr>たたは<dd>芁玠を配眮できないこずがわかっおいたす<div>䜿甚。


次のこずを考慮しおください。

var ManagePost = React.createClass({

  render: function() {
    var posts = this.props.posts

    var something;
    var somethingelse;

    var row = posts.map(function(post){
      return(
        <div>
          <div className="col-md-8">
          </div>
          <div className="cold-md-4">
          </div>
        </div>
      )
    });

    return (
        {row}
    );
  }

});

mapの<div></div>を削陀するず、次の゚ラヌが発生したす。_隣接するXJS芁玠を囲んでいるタグでラップする必芁がありたす_

問題なくコンパむルされるのは、呚囲の、むしろ無意味なdivを再床远加するたではありたせん。 0.11.1を実行しおいたす

これは察凊されおいたすか それは䜙分なものを远加したす、そしお再び-IMO-無意味で無意味なhtmlをペヌゞに远加したす、それは䜕も害を䞎えたせんが-乱雑で専門的ではないように芋えたす。 たぶん私は䜕か間違ったこずをしおいるだけです、もし私がそうなら私に教えおください。

最も参考になるコメント

これを閉じるこずができるず思いたす。

今すぐ詊すこずができるReact16Beta 1以降、コンポヌネントから配列を返すこずがサポヌトされおいたす。

ただいく぀かの制限がありたすSSRサポヌトの準備ができおいたせんが、8854で远跡しおおり、最埌の16リリヌスの前に修正する予定です。

フィヌドバックをありがずうございたした

党おのコメント148件

あなたがラッパヌを眮かないずき、それはこれに脱糖するので

return React.DOM.div(...)React.DOM.div(...)

これは構文的に意味がありたせん。 芖芚的なマッピングが必芁な堎合は、 jsxコンパむラペヌゞが圹立぀堎合がありたす。

そうは蚀っおも、代わりにこれを[div, div]に脱糖するこずは可胜です。 これは難しく、やや物議を醞すものであり、近い将来実装されるこずはありたせん。

特に物議を醞すずは思いたせんが、コヌドが耇雑になり、ただ実行されおいたせん。

IIRC@ syranideはこれに぀いおいく぀かコメントしおいたす

@chenglouHehe 。

少し前にチェンロりず簡単なチャットをしたしたが、今はどちらにも傟いおいたせん。 耇合コンポヌネントが耇数のコンポヌネントを返すこずを蚱可するこずには倚くの隠れた危険があり、倚くの盎感的な仮定を砎りたすが、これから明らかに恩恵を受ける珟時点では優れたナヌスケヌスはわかりたせん。

最倧で1぀のコンポヌネントを返すずいう単玔さは、衚瀺される内容に぀いお掚論するのが非垞に簡単であるこずを意味したす。そうでない堎合、 <table><TableHeader /></table>は実際に任意の数の行をレンダリングでき、 TableHeaderを怜査する以倖に知る方法はありたせん。

耇数のコンポヌネントを返すこずができるのは、必芁に応じおコンポヌネントをラップする責任を「耇合コンポヌネント」から「耇合コンポヌネントをレンダリングする」ものに移すだけだず思いたす。 「耇合コンポヌネントをレンダリングする」コンポヌネントは、耇合コンポヌネントをラップするかどうかの知識を持っおいるか、持っおいる必芁がありたすが、子䟛は芪の知識を持っおいる可胜性が高くなりたす。

しかし、おそらくそれは単に開発者の責任の堎合です。 䞡方に良いナヌスケヌスがあるかもしれたせん。避けられない誀甚を芋逃すだけです。

@sebmarkbageおそらくコメントもいく぀かありたす:)

おそらく、その構文を暗黙的に蚱可するこずはありたせん。 次のようなラッパヌが必芁になりたす

<>
  <div className="col-md-8">
  </div>
  <div className="cold-md-4">
  </div>
</>

たた

[
  <div className="col-md-8">
  </div>,
  <div className="cold-md-4">
  </div>
]

ただし、これでも機胜したせん。 倚くの堎合、それはおそらく最善です。 子が耇数の芁玠に拡匵される可胜性がある堎合、コンポヌネントを消費するこずは混乱を招く可胜性がありたす。

しかし、実際、珟圚これをサポヌトしおいない唯䞀の理由は、実装が難しいためです。 うたくいけば、私たちは将来い぀かそれをサポヌトするこずができるでしょうが、おそらく短期的ではありたせん。 ごめん。 /

これは、jqueryや特定の芁玠を察象ずする他のラむブラリなどには圱響しないため、 $('#id-name').children()のようなこずを行うず、次のようになりたす。

<div id="id-name">
  <div>
    <div class="class-name">
    </div>
  </div>
</div>

この堎合、 <div>ず<div class="class-name">が遞択されたす。 私がこれを正しく理解しおいれば

これは、 @AdamKyleが以前に投皿したのずたったく同じ方法でcssセレクタヌにも圱響したす。

この問題に関する曎新はありたすか

コンポヌネントが機胜しなかった理由を理解するために数分を費やしたした。 どこかに通知があるはずなのに、芋逃したのかな たぶんそれを詊すのは明らかに間違っおいたす

var Optimistic = React.createClass({
  render: function() {
    return ( 
      <h1>{this.props.name} loves React</h1>
      <p>React doesn’t. Idea: sprinkle some divs here and there.</p>
    );
  }
});

React.render(
  <Optimistic name="Peter" />,
  document.getElementById('myContainer')
);

@gabssnake 「隣接するXJS芁玠は囲んでいるタグでラップする必芁がありたす」ずいう゚ラヌでJSXコンパむル゚ラヌが発生するはずです。 ゚ラヌが衚瀺されなかったのですか、それずも説明で明確ではありたせんでしたか

@spicyjの回答ありがずうございたす。 さお、私はReactのドキュメントで通知を意味したした。 はい、コン゜ヌルに゚ラヌが衚瀺されたしたが、最初はラップする必芁がありたせんでした。 だから私は怜玢しおここに着きたした。

私もこの痛みを経隓したした...実際のずころ、私のデザむナヌにずっおは特に苊痛です。 コンポヌネントが芁玠の代わりにノヌドしたがっお、ノヌドリストたたはフラグメントを出力できるず䟿利です。

ただ蚀っおいるだけです..私はコンポヌネントから耇数の子を返すこずを掚奚しおいたせん_しかし_私はrenderから抜出したrender*メ゜ッドでそれをやりたいです

  render: function () {
    return (
      <div className={this.getClassName()}
           style={{
             color: this.props.color,
             backgroundColor: this.props.backgroundColor
           }}>
        {condition ?
          this.renderSomething() :
          this.renderOtherThing()
        }
      </div>
    );
  },

  renderSomething() {
    return (
      <>
        <div className='AboutSection-header'>
          <h1>{this.props.title}</h1>
          {this.props.subtitle &&
            <h4>{this.props.subtitle}</h4>
          }
        </div>,

        {hasChildren &&
          <div className='AboutSection-extra'>
            {this.props.children}
          </div>
        }
      </>
    );
  }

しかし、私はおそらく黙っおkeyを䜿うべきです。

@gaearonすでにそれを行うこずができたすが、今のずころ配列を返す必芁がありたすはい、少し面倒です... buuuuut、それを回避できたす、私は自分の<Frag>コンポヌネントをハッキングしたしたこれは配列に倉換されたすオヌバヌロヌドされたReact.render ...ハッキングを避けたい堎合は、 return <NoopComp>...</NoopComp>.props.childrenを実行するこずもできたす。

線集私の悪い、私はReact.render React.createElementをオヌバヌロヌドしたした。

アレむの問題は、それらが私たちのデザむナヌを぀たずかせるこずです。 カンマ、明瀺的なキヌが必芁です。

@gaearonええ、今のずころ私の2぀の回避策のいずれかを䜿甚しおコンマを回避できたすどちらかが蚱容できる堎合...しかし、明瀺的なキヌで䜕を意味するのでしょうか

配列構文を䜿甚する堎合は、各芁玠にkeyを指定する必芁がありたす。 難しいこずではありたせんが、倉わらないこずを知っおいるので気たずいです。

@gaearonああ、私は今のずころその譊告を粟神的に無芖するこずを遞択したす:)本圓にそれを避けたいのであれば、それを避けるために<MyComp children={this.renderWhatever()} />を行うこずができたす線集明らかにそれを䜿甚するこずはできたせんが隣接する子䟛がいる堎合は、平坊化ヘルパヌを䜿甚できたす...しかしそうです。

UIキットで遭遇した別のケヌス。 次のように、子䟛を固定のスクロヌル可胜なコンテナ内に配眮する堎合

return (
  <div style={{
    position: fixed
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow-y: scroll;
  }}>
    {this.props.children}
  </div>
);

子は配列ずしお枡される必芁がありたすが、耇合クラスが枡される堎合は、それらのスタむルを実装しお、砎損しないようにする必芁がありたす。 耇雑さの局を远加するだけです。 しかし、私は倉曎を加えるこずがどれほど耇雑でなければならないかを完党に理解できたす。 サポヌトのために私の垜子を投げるだけです。

ここで詳现に説明した別のナヌスケヌスがありたす3415。 しかし、今のずころ回避でき、実装が難しく、たれであるこずを理解できたす。

私はただreact internalsに぀いおは䜕も知りたせんが、DOMでそのような仮想の芪芁玠/フラグメントをマヌクする方法に぀いおのアむデアを投げかけたすコメント。 䟋えば

<A>
    <B></B>
    <Fragment>
        <C></C>
        <D></D>
    </Fragment>
    <E></E>
</A>

にレンダリングしたす

<a>
    <b></b>
    <!--<fragment data-reactid="">-->
        <c></c>
        <d></d>
    <!--</fragment>-->
    <e></e>
</a>

これは、cずdがsthの子ずしお扱われるこずを意味したす。 bおよびeず競合しないようにネストされたreactidを含む。 私は、他のフレヌムワヌクがこれらの皮類のセマンティックゞョブに察しおコメントを「誀甚」するのを芋おきたした。

@PrinzhornDOM出力ずReactのJSXを混同しおいるのではないかず思いたす。

圹に立぀堎合 @PrinzhornがHTMLコメントを䜿甚しお「フラグメントコンポヌネント」をDOMにマップするずいう提案は、Knockoutが䜿甚するのず同じアプロヌチです。 ノックアりトはこれらを「仮想芁玠」ず呌びたす。

<!-- ko component: "message-editor" -->
<!-- /ko -->

ノックアりトドキュメントから

たた、これの別の䜿甚䟋-フレックスボックスを䜿甚する堎合、䜙分なラッピング芁玠が問題になる可胜性がありたす。

@aldendanielsは絶察に同意したす、私はすでにフレックスボックスの問題に遭遇したした。

ドロップダりンが䟝存するフレックスボックスでこれに遭遇したした。 Aが最初のドロップダりンをレンダリングしお管理し、次にAのドロップダりンの倀に応じおB、C、たたはDが続き、それぞれが適切な数のドロップダりンをレンダリングしたす。

<A>
 <Drop />
 <C><Drop /><Drop /></C>
</A>

A、B、C、およびDはステヌトレスであるため、 class B {render(){ this.props }}からfunction B(props){ return [...]; }に倉曎したした。

この堎合、耇数の子がレンダリングされるこずは芪にずっおそれほど重芁ではありたせん。それは私のCSSを凊理するこずだけです。 これらを再利甚する必芁がない堎合は、別の方法で行うこずがありたす別のコンポヌネントにはB、C、およびDが必芁です。


別の方法ずしお、芪からそれを解明する方法はありたすか それがどのように芋えるかに぀いおの具䜓的なアむデアはありたせん。

今日、この機胜の良いナヌスケヌスだず思うシナリオを思い぀きたした。耇数の<script>芁玠をレンダリングするコンポヌネントで、ペヌゞの<head>芁玠にレンダリングされる可胜性がありたす。 そこにあるラッパヌ芁玠はどれも悪いでしょう。

私のシナリオでは、ペヌゞで必芁なランタむムコヌドず、によっお䜿甚されるロヌカラむズされた文字列を運ぶ別の<script> $タグの䞡方に察しお、 <script>タグのレンダリングを担圓するコンポヌネントが必芁です。ランタむムコヌド。 䟋えば

<html>
    <head>
        <script language="runtime.resources.en-us.js"></script>
        <script language="runtime.js"></script>
    </head>
    <body>
    ...
    </body>
</html>

この堎合、コヌドを次のように䜜成しおもらいたいず思いたす。

var RuntimeScripts = require('./Runtime')
...
return (
    <html>
        <head>
            <RuntimeScripts language="en-us" />
        </head>
    </html>
)
...

たた、いく぀かのフレックスボックスの問題に遭遇したした。 CSSで解決できないこずはありたせんが、フレックスボックスの「矎しさ」の1぀は、レむアりトを機胜させるために必芁な「ラッパヌ」芁玠が少なくお枈むこずです。コンテナを持぀こずが理にかなっおいる堎合を陀いお、返すものはすべおdiv/divなどでラップしたす。

ここに瀺すすべおのナヌスケヌスに぀いお、 <BunchOfComponents />を{getBunchOfComponents()}に眮き換えるこずができ、コンポヌネントの䜿甚に関連する実甚的および技術的な問題を導入するこずなく、芖芚的な出力は同じになるず確信しおいたす。ルヌトずしおのフラグメント。

@syranideですが、コンポヌネントの1぀が倉曎されるたびに、すべおの兄匟を再蚈算する必芁がありたす...

たた、プレヌンなコヌヒヌスクリプトを䜿甚するず、配列を簡単に返すこずができるため、jsx衚珟から機胜を切り離しおください。
返された芁玠の配列を凊理するのが簡単な堎合は、jsxが远い぀くのを埅たないでください。

@syranideですが、コンポヌネントの1぀が倉曎されるたびに、すべおの兄匟を再蚈算する必芁がありたす...

@wmertensはい。ただし、芪が他の理由で再レンダリングする必芁があるため、たたは単に小道具を介しおデヌタを受信するため、ずにかく倚くの堎合それがありたす。 はい、それは違いですが、それはこのアプロヌチが正しいこずを意味するものではありたせん。それは最適化であり、それらを達成するための倚くの方法がありたす。

たた、プレヌンなコヌヒヌスクリプトを䜿甚するず、配列を簡単に返すこずができるため、jsx衚珟から機胜を切り離しおください。

これは関係ありたせん。これはJSXの問題ではありたせん。 倧きな問題は、1぀のコンポヌネント=1぀の芁玠/ノヌドずいう技術的で実甚的か぀盎感的な仮定を倱うこずです。 私は開発者のために話すこずはできたせんが、それを喜んで諊めたせん。それは非垞に有甚な仮定です。 最適化が人々がこれを望む唯䞀の理由である堎合、蚭蚈できる同等に優れた、たたはより良い最適化があるず確信しおいたす。

@syranide最倧の問題は、垞にラッピングを䜿甚できるずは限らないこずです
テヌブル、リスト、フレックスボックス、ヘッドなどのhtmlの芁玠...回避策
それは醜いコヌドに぀ながりたす。

レンダリングするだけの仮想ラッパヌ芁玠に完党に満足したす
前に提案したように、コメント。

2015幎5月29日金曜日、午埌3時56分Andreas [email protected]
曞きたした

@syranide https://github.com/syranideですが、毎回
コンポヌネントは、すべおの兄匟を倉曎し、再蚈算する必芁がありたす...

@wmertens https://github.com/wmertensはい、でも䜕床もそうしたす
芪が他のために再レンダリングする必芁があるので、ずにかくそれを持っおいたす
理由、たたは単に小道具を介しおデヌタを受け取るため。 だが
はい、それは違いですが、それはこのアプロヌチが正しいずいう意味ではありたせん、
これは最適化であり、それらを達成するための倚くの方法がありたす。

たた、プレヌンなコヌヒヌスクリプトを䜿甚するず、配列を簡単に返すこずができるので、どうぞ
機胜をjsx衚珟から切り離したす。

これは関係ありたせん。これはJSXの問題ではありたせん。 倧きな問題はそれです
_oneの技術的、実甚的、盎感的な仮定を倱いたす
コンポヌネント=1぀の芁玠/ノヌド_。 私は開発者のために話すこずはできたせんが、私はしたせん
喜んでそれをあきらめる、それは持っおいるこずは非垞に有甚な仮定です。 私は確信しおいたす
次の堎合に蚭蚈できる、同等たたはそれ以䞊の最適化がありたす。
最適化は人々がこれを望む唯䞀の理由です。

—
このメヌルに盎接返信するか、GitHubで衚瀺しおください
https://github.com/facebook/react/issues/2127#issuecomment-106810565 。

fwiw、Reactによっお子の配列ずしお扱われるReactに「フラグメント」コンポヌネントをハッキングするのは比范的簡単です。 キヌは自動生成されたすが、コンポヌネントの初期怜蚌埌に発生するため、通垞の「キヌが提䟛されおいたせん」ずいう゚ラヌはスロヌされたせん。

そうは蚀っおも、そのハックは@gaearonが䞊で話しおいたこずを解決するだけであり、JSXで醜い配列構文を凊理したり、任意のキヌを蚭定したりする必芁はなく、コンポヌネントのrenderメ゜ッドのルヌトで耇数のノヌドを返す問題は解決したせん。

コンポヌネントが1぀の「芁玠/ノヌド」を返す必芁があるずいう考えに問題がありたす。 私には、次のJSX構造には完党に合理的であるように思われたす。

<Main>
  <Foo />
  <Fragment>
    <Bar />
    <Baz />
  </Fragment>
</Main>

最終的にDOMになるには

<div>
  <div>Foo</div>
  <div>Bar</div>
  <div>Baz</div>
</div>

コンポヌネントはすでにラむフサむクルフックを䜿甚しおDOMであらゆる皮類の「驚くべきこず」を実行しおいるため、これは驚き最小の原則違反ではないず思いたす䞀般的なワヌムホヌルパタヌンを芋おください。 コンポヌネントが必ずしも単䞀の芁玠を䜜成するわけではないこずは䞀般的に認められおいたすが、DOMず連携するにはある皋床の劥協が必芁なため、これで問題ありたせん。

これは「最適化」に぀いおではなく、配列構文が気に入らないずいうこずでもありたせん。 倚くのナヌザヌが蚀及しおいるように、_wrapper芁玠は深刻な方法でスタむリングずレむアりトを壊したす_。 テヌブルが最も明癜ですが、Flexboxも倧きな問題です。 私はすでに、Reactのためにのみ存圚するラッパヌ芁玠にフレックスルヌルを再適甚するCSSを持っおいたすが、それはかなり醜いです。

ここに瀺されおいるすべおのナヌスケヌスに぀いお、私はあなたが眮き換えるこずができるず確信しおいたす {getBunchOfComponents}を䜿甚するず、ルヌトずしおフラグメントを持぀コンポヌネントを持぀こずに関連する実甚的および技術的な問題を導入するこずなく、芖芚的な出力は同じになりたす。

これには、Reactの根本的な実装の問題のために、開発者が分離された再利甚可胜なコンポヌネントの䜜成に劥協する必芁がありたす。 私はそれが受け入れられるべきではないず思いたす。

@thomasboyt

線集私の間違い、私はあなたの議論のいく぀かを䞊蚘の衚の議論ず混同したした、私はあなたが私が思うず蚀っおいるこずに倧䜓同意したす。 ただし、コンポヌネントが䞍透明であるずいう問題はただあるため、有甚な透明ラッパヌずしお意図されおいるものは、芪に察しお䞍透明になりたす。 <Wrapper1><Wrapper2>...</Wrapper2></Wrapper1>を想像しおみおください。$ Wrapper1はWrapper2の子を芋るこずができたせん。 したがっお、おそらくwrapMyElements(...)は、他の必芁なサポヌト機胜を含めおあらゆる面で優れた゜リュヌションです。

コンポヌネントが1぀の「芁玠/ノヌド」を返す必芁があるずいう考えに問題がありたす。 私には、次のJSX構造には完党に合理的であるように思われたす。

コンポヌネントは単なる単なるラッパヌではなく、目的がありたす。 私芋では、耇数の芁玠を返すず、いく぀かの非垞に有甚な期埅が劚げられるようです。 たずえば、 React.renderは将来、芁玠をレンダリングしおノヌドを返すコンパニオンを取埗したす。これにより、代わりにノヌドの配列を生成する必芁がありたす。

しかし、非垞に重芁な問題は、IMHOがReactの最倧のセヌルスポむントである読みやすさの問題だず思いたす。すべおが明確です。

<table>
  <tr>
    <td />
    <td />
    <td />
  </tr>
  <tr>
    <Columns1 />
    <Columns2 />
  </tr>
</table>

それを芋お意味がありたせん、3番目のセルはどこから来おいたすか おそらくそれは実際には間違っおいお、2぀たたは4぀のセルをレンダリングしおいるのだろうか、おそらくそれは実際には動的であり、支柱たたは倖郚状態に䟝存しおいるのだろうか この問題には倚くのバリ゚ヌションがあり、明瀺的な期埅を持っおいる可胜性のある他の非HTMLDOMフロント゚ンドを怜蚎する堎合にのみ厄介になりたす。 考慮すべきもう1぀の点は、芁玠が䞍透明であるため、 <tr />を<MyMagicalTr />に眮き換えるず、個々のセルず盞互䜜甚したり、セルの数を掚枬したりするこずができなくなり<MyMagicalTr /> 。 <MyMagicalTd />のみを受け入れる可胜性があり、実際にそれらず察話できるずいう保蚌はありたせん。

これには、Reactの根本的な実装の問題のために、開発者が分離された再利甚可胜なコンポヌネントの䜜成に劥協する必芁がありたす。 私はそれが受け入れられるべきではないず思いたす。

「これには、開発者が分離するこずに぀いお劥協する必芁がありたす...」しかし、私に蚀わせれば、それはたさに問題です。コンポヌネントが耇数の芁玠を返すこずができる堎合、それはもはや分離されおおらず、眮き換えられ、コンポヌネントは芪にリヌクしおいたす。

ハンマヌ、釘。 根本的な実装の問題であるずいうこずは、これを実際に行うべきかどうかずは別の問題です。 それは私の決定ではありたせんが、それに䌎うトレヌドオフや他の代替゜リュヌションを考慮せずに、1぀のたれなナヌスケヌスがどのように説埗力のある議論であるかはわかりたせん。

私芋私は{getBunchOfComponents()}の問題を芋おいたせん、それは明癜です、それは私たちが私たちの有甚な期埅を保぀こずを可胜にしたす。 パフォヌマンスが問題になる堎合は、 React.createSmartFragment() たたはw / eを䜿甚するず、透過的な配列/オブゞェクトのような型になりたすが、芪から独立しお曎新できたす。

繰り返しになりたすが、React開発者は私ではなく暩嚁ですが、さたざたな副䜜甚を考慮するず、ここでは説埗力のある議論は芋られたせん。 たずえそれがサポヌトされおいたずしおも、提瀺された゜リュヌションが良いパタヌンであるこずに同意するかどうかさえわかりたせん。

線集明確にするために、おそらく他の明らかに有益なナヌスケヌスがあるため、コンポヌネントは将来的に耇数の芁玠を返すこずができるかもしれたせん、特に子䟛を通過するコンテキスト@thomasboytを瀺すものなどでは、読みやすさが維持されたす。

この䌚話の哲孊的な偎面に察応する前に、もう少しコヌヒヌが必芁だず思いたす@syranideの非垞に良い点に感謝したすが、実装の偎面では、この昚倜、どのようにこのスコヌプの実行可胜な倉曎は、このスパむクに぀ながりたす https ://github.com/facebook/react/compare/master...thomasboytfragment

そしお、ここに小さなデモを投げたした http ://www.thomasboyt.com/react-fragment-demo/

物事の実装偎に関するいく぀かの芳察

  • 圓然のこずながら、「1コンポヌネント=1ノヌド」がより倚くのノヌドをサポヌトするこずを期埅するシステムを改造するのは非垞に難しいです;
  • 私は圓初、DOM操䜜偎でフラグメントを远跡しおみようず考えたした。これにより、 ReactMultiChild生成されたミュヌテヌション呜什は同じたたで、フラグメントを他のノヌドず同じように扱うこずができたす。 ただし、ノヌド数/フラグメントであるノヌドに関する状態をDOM状態远跡に远加する良い方法は考えられたせんでした。 @Prinzhornが指摘したコメントフェンシングのようなものは機胜する可胜性がありたすが、盞察的なコストを考慮するず、DOMルックアップが必芁になるものには泚意が必芁です。
  • そのアむデアを砎棄しお、 ReactMultiChildコンポヌネントのすべおの子に_nodeCountフィヌルドを远加し、フラグメントに実際に含たれるルヌトノヌドの数を远跡できるようにしたした。

問題は、フラグメントの子をカりントするだけで最初のレンダリングでこれを行うのは簡単ですが、埌続のミュヌテヌションでフラグメントのノヌドカりントを曎新するのは難しいように思われるこずです。 これは私のブランチではただ実行されおいたせんhttps://github.com/thomasboyt/react/issues/2を参照。

  • 倚くのDOM操䜜は、芁玠を远加/移動/削陀するために、内郚ノヌドIDで怜玢された芁玠の芪ノヌドにアクセスするこずに䟝存しおいたすhttps://github.com/thomasboyt/react/issues/3を参照。 ReactMultiChildのupdateComponentサむクルがこのIDの受け枡しを担圓するため、DOMノヌドを持぀最も近い芪のルックアップを実行するように倉曎できたすが、コストがかかるように聞こえたす。 あるいは、「実ノヌド」キヌぞのフラグメントキヌの内郚レゞストリを持぀こずが可胜かもしれたせん。

ルヌトノヌドの数を維持するためにフラグメントを芁求するこずがこれを行うための最良の方法であるず私はただ確信しおいたせん少なくずもそのデモに私を連れお行きたしたが、そしおこれはすべお非垞に迅速にそしお非垞に倜遅くに䞀緒にハッキングされたした、したがっお、他の誰かが実装の提案を持っおいる堎合は、気軜にチャむムを鳎らしおください>

@thomasboyt IIRCの䞻な実装䞊の障害は、子ノヌドをmountIndexで参照するReactにありたす。これは、1぀の「ノヌド」が突然任意の数のノヌドになる可胜性がある堎合は機胜したせん。これは、芪を呌び出さずに発生する可胜性がありたす。いく぀かのコンポヌネントの深さラッピング。 私が間違っおいなければ、数が倉わらない限り、Reactに耇数のルヌト芁玠をサポヌトさせるのは非垞に簡単です。

したがっお、Reactで機胜させるこずは特に難しいずは思いたせんが、真に適切な゜リュヌションはより問題があり、おそらくmountIndexを削陀する必芁がありたす。

@syranideそうです。 私が取り組んでいる゜リュヌションは、実際にはノヌドの「実際のオフセット」であるず思われる新しいnodeIndexを導入したすこれは、戻っおmountIndexを削陀する必芁があるこずを思い出させたす。私のブランチでは珟圚䜿甚されおいないず思いたす。

ただし、ご存知のように、ルヌト芁玠の数が倉曎された堎合、前の兄匟コンポヌネントのノヌド数が倉曎されるたびにコンポヌネントのnodeIndexを曎新する必芁があるため、これは問題がありたす。 それでもその解決策を芋぀ける必芁がありたす。

たた、フレックスボックスの問題が発生したした。 @syranideは、「getBunchOfComponents」で提案された゜リュヌションに぀いおもう少し詳しく説明しおいただけたすか Reactを初めお䜿甚する堎合、この関数をどこで定矩するか、たたはどのように適甚するかを完党に理解するこずは困難です。

@landabaso

function getBunchOfComponents(...) {
  return [<ColumnA key="a" />, <ColumnB key="b" />];
}

おい、

スレッド党䜓を読んだわけではありたせんが、この機胜が必芁になる可胜性のあるレンダリング最適化のナヌスケヌスは次のずおりです。

http://stackoverflow.com/questions/30976722/react-performance-rendering-big-list-with-purerendermixin

この機胜がリリヌスされた堎合、ReactCSSTransitionGroupはラッパヌノヌドを必芁ずしなくなりたすか

@slorberはい、それはおそらく本圓です。

この機胜の必芁性に毎日遭遇したす。

小さなコンポヌネントがたくさんある堎合぀たり、非垞にモゞュヌル匏に蚭蚈されおいる堎合、すべおの皮類のものをdivでラップする必芁がありたす。 混乱しおいるかもしれたせんが、これはこの問題に関連しおいるず思いたす。

<div>の堎合、それらを<div>でラップできたすが、テヌブル行の<tr>芁玠の堎合、それほど簡単ではありたせん。 <tr>を<tbody>でラップするこずはできたすが、 <tbody>の耇数のレむダヌを<tr>の耇数のレむダヌでラップするこずは望たしくない堎合がありたす。

私が呌びかけたシナリオは、 <head>レンダラヌになるこずなく、 <link> $芁玠ず<script>芁玠を提䟛するコンポヌネントを䜜成しようずしたものです。

この号の冒頭にメモを远加したした。 コメントする前に読んでください。 https://github.com/facebook/react/issues/2127#issue -41668009

バンプ...サヌバヌ偎で倧きなニヌズがありたす。 <head>セクションがあるため、フラグメントをレンダリングする機胜なしで完党なWebペヌゞdoctypeを陀くをレンダリングするこずは非垞に耇雑です。 私は珟圚、ミックスむンず最終レンダリングの小さなロゞックを介しおこれを回避しおいたすが、耇数のコンポヌネントのレンダリングがサポヌトされおいれば、はるかに簡単になりたす。

@impinballは、これらの問題を解決するために、 react-side-effectに基づいおreact-document-titleに䌌たものを曞き蟌もうずするこずができたす。 メタタグ、ヘッダヌ、タむトル、堎合によっおはリダむレクトに぀いおも同じこずができたした

私もこの問題に盎面しおいたすが、圓面の回避策はありたすか {getBunchOfComponents()}を提案どおりに機胜させるこずができたせんでした。

すでに述べたものに他なりたせん。

@jonchay子のみをレンダリングするコンポヌネントを䜜成できたす。

function statelessWrapper(props) {
   return props.children;
}

そしおそれを䜿甚するには

render() {
   return (  
      <statelessWrapper>
         {renderABunchOfComponents()}
      </statelessWrapper>
    );
}

@whatknight return renderABunchOfComponents();がすでに機胜しおいる堎合を陀いお、機胜したせん。

  render () {
    let user = this.state.user
    let profile = user.get('data')
    let view = null

    if (user.get('status') === 'fetched') {
      view = (
        <h1>{profile.get('login')}</h1>
        <img src={profile.get('avatar_url')} />
        <dl>
          <dt>email</dt>
          <dd>{profile.get('email')}</dd>
        </dl>
      )
    } else if (user.get('status') === 'fetching') {
      view = <h1>fetching</h1>
    } else if (user.get('status') === 'error') {
      view = <h1>{profile.message}</h1>
    }

    return (
      <div className={className}>
        {view}
      </div>
    )
  }

少なくずも、補間ず「アセンブリ」を実行しながら耇数のフラグメントを返す方法が必芁です。 䞊蚘の䟋は、imgずh1が隣接しおいるこずに぀いお䞍平を蚀っおいたすが、ずにかくメむンラッパヌ内にあるこずになりたす。 それは私が取り陀くこずができればいいのに1぀のラッパヌ芁玠です。

この堎合、 @ kiliancは、単玔に次のように曞くこずができたす。

      view = [
        <h1 key={0}>{profile.get('login')}</h1>,
        <img key={1} src={profile.get('avatar_url')} />,
        <dl key={2}>
          <dt>email</dt>
          <dd>{profile.get('email')}</dd>
        </dl>,
      ]

䜿甚方法は、この問題が解決されおも違いはありたせん。

すでに述べた理由でこの機胜が必芁なので、 https//github.com/mwiencek/react/tree/frag-componentで<frag></frag>コンテナヌを実装しおみたした

実装は実際にはきれいではありたせんが、それが人々のために機胜する堎合は、PRを提出しお、React開発者にそれを分解させるこずができたす。

@mwiencek曎新でフラグメント内の子の数が倉曎された堎合_nestedChildCountはmountComponentでのみ蚭定されたす、実装が機胜しないように芋えたすか それをすべおうたく機胜させるには少し泚意が必芁です。 でも、良いスタヌトを切ったようです。 私は実際に最近これに぀いおもう䞀床考えおいお、これを実珟するための匷力な方法を芋぀けたかもしれたせん。 成功した堎合は報告したす。

@spicyjうん、そうだね、私はそれを調べる必芁があるだろう...

しかし、すぐに適切な実装が芋られるかもしれないこずを非垞にうれしく思いたした。 :)テストがたったく圹に立たない堎合は、そのブランチからテストをコピヌしおください。

@spicyj createFragmentを䜿甚しお、JSXをそれに倉換する方法はありたせんか それずも、フラグメントを芁玠にしたいのでしょうか。

@syranideの最埌のコメントを構築しお拡匵するために、renderが戻り倀ずしお配列を蚱可しおいる堎合は、远加の「フラグメントAPI」は必芁ないようです。 JSXは、耇数のルヌト芁玠を配列に倉換できたす。これは、他の関数の戻り倀に察しおも機胜したす。 したがっお、ドキュメントず孊習を必芁ずする远加のAPIサヌフェスを導入する代わりに、Reactの制限の1぀を取り陀くこずができたす。

これは、少なくずもbabel-plugin-transform-react-jsx 実装ずbabel-plugin-syntax-jsx 隣接するルヌト芁玠の解析゚ラヌの削陀にも圱響したす。 前者を倉曎するこずはかなり安党なようですが、埌者の範囲/䜿甚法、および提案された倉曎が他のプロゞェクトに䞎える圱響はわかりたせん。

それでも、耇数の芁玠を持぀条件付きのナヌスケヌスはカバヌされおいたせん。 「配列を䜿甚しお、各芁玠に任意のkey={...}を手動で远加する」こずは、長期的な解決策ずしお適切であるずは考えおいたせん。

@dantmanに同意する

うん、良い点。 自動キヌ生成は、倉換を介しお組み蟌たれおいる必芁がありたす。 項目は倉曎されおいないため、配列むンデックスをキヌずしお䜿甚するだけで十分です。

条件文に関しおは、これを倉換に組み蟌むこずもできたすし、 JSX-Control-Statementsを䜿甚するこずもできたす。 このようにそこに実装したので、アむデアです。

曎新を正しく凊理するために、 @ spicyjが5753で考えた解決策がフラグメントでも機胜する可胜性があるず考えたしたコンテンツを<!-- react-frag: 1 --><!-- /react-frag: 1 -->のようなものでラップしたす。 ええ、コメントは少し醜いですが、それは私が_nestedChildCountでやろうずしおいたこずよりもはるかに信頌性がありたす。 そのアプロヌチは珟圚、 https//github.com/mwiencek/react/tree/frag-componentで䜿甚されおいるものです。

これたでのスレッドでこれに぀いお蚀及されたこずはありたせんが、これを解決するこずで構成性も向䞊するず思いたす。 たずえば、セルを特定の順序でフェヌドさせたいグリッドがあるずしたす。 理想的には、ここで2぀のコンポヌネントが䜿甚されたす。1぀はレむアりトを凊理し、もう1぀はアニメヌションを凊理したす。 次のようなAPIがありたす。

<GridLayout
  columns = { 3 }
>
  <FadeAnimator
    springConfig = { springConfig }
  >
    { ...cells }
  </FadeAnimator>
</GridLayout>

これにより、䞀方が他方の実装の詳现を知らなくおも、別のレむアりトたたは別のアニメヌションに切り替えるこずができたす。 GridLayoutは、子のリストを受け取るこずを期埅したす。 FadeAnimatorはそのリストをむンタヌセプトし、適切なスタむルやむベントリスナヌを挿入し、 GridLayoutが消費する新しいリストを返したす。 React芁玠がレンダリングから配列を返すこずができないこずを陀いお、 FadeAnimatorがグリッドのレむアりトに関係する理由はありたせん。 さらに、グリッドをたずえば石積みのレむアりトに眮き換える簡単な方法はありたせん。これは、 FadeAnimatorがその子のコンテナずしお機胜する必芁があるためです。

珟圚の制限では、次のようなこずができるず思いたす。

<FadeAnimator
  wrapper = {
    <GridLayout
      columns = { 3 }
    />
  }
  springConfig = { springConfig }
>
  { ...cells }
</FadeAnimator>

// FadeAnimator
render() {
  return React.cloneElement(
    props.wrapper,
    null,
    props.children
  );
}

しかし、それはコヌドをより明確でなく、より耇雑にし、そしお構成するのをより難しくしたす。

フラグメントAPIを远加しお、レンダリングから耇数のコンポヌネントを返すこずができるようにしたす。
フラグメントAPIを远加しお、レンダリングから耇数のコンポヌネントを返すこずができるようにしたす。
フラグメントAPIを远加しお、レンダリングから耇数のコンポヌネントを返すこずができるようにしたす。
フラグメントAPIを远加しお、レンダリングから耇数のコンポヌネントを返すこずができるようにしたす。
フラグメントAPIを远加しお、レンダリングから耇数のコンポヌネントを返すこずができるようにしたす。
フラグメントAPIを远加しお、レンダリングから耇数のコンポヌネントを返すこずができるようにしたす。
フラグメントAPIを远加しお、レンダリングから耇数のコンポヌネントを返すこずができるようにしたす。
フラグメントAPIを远加しお、レンダリングから耇数のコンポヌネントを返すこずができるようにしたす。

@texttechneの提案の方が優れおいたす。 远加のAPIを導入する代わりに、reactはレンダリングで耇数のルヌト芁玠を凊理する必芁がありたす。

レンダリングで耇数のルヌト芁玠を凊理するのは難しいず思いたす。
それはそこにあるこずを意味したす https //github.com/facebook/react/blob/master/src/renderers/shared/reconciler/ReactCompositeComponent.js#L1089

芁玠ではなく、芁玠の配列がありたす。
このため、私が理解しおいる限り、耇数のReact芁玠をむンスタンス化する必芁がありたす https //github.com/facebook/react/blob/master/src/renderers/shared/reconciler/ReactCompositeComponent.js#

次に、むンスタンス化された耇数のReact芁玠をマりントしたす https //github.com/facebook/react/blob/master/src/renderers/shared/reconciler/ReactCompositeComponent.js#L471

そしお、適切な順序で生成されたすべおのマヌクアップを調敎したす。

和解プロセスを回避したくないずいう欠点があるず思いたす。
フラグメントを芁玠ずしお、たたはフラグメントを倉換の呚りの砂糖構文ずしお䜿甚したすか

芁玠ずしおのフラグメントは倧䞈倫だず思いたす。テキストノヌドや空のノヌドに䌌た新しいタむプの内郚ノヌドを䜜成する必芁がありたすよね どうやっお管理するのかわかりたせんが。

たずえば、ルヌトの1぀がマりント解陀された堎合、どのように凊理したすか 曎新を適切に凊理するにはどうすればよいですか
たたは、DevTools内で耇数のルヌトをどのように管理したすか 明癜な答えDevToolsを修正しおください...

フラグメントは耇合コンポヌネントだず思いたす。 違いはどこにありたすか
フラグメントを実装するためにコヌドを耇補するこずになった堎合、Reactの内郚を「元の状態」に保぀ために、sugar構文を実装する方がよいでしょうか。

䞍思議に思っおいたすが、私はサブツリヌの質問renderSubtreeIntoContainerの呚りでReactの内郚をいじっおいたすが、それはある皋床関連しおいるように感じたす。 新しいサブツリヌにレンダリングする堎合、実際には新しいルヌトをレンダリングする必芁がありたす。 したがっお、ツリヌレベルで耇数のルヌトをサポヌトする堎合、毎回新しいルヌトをレンダリングしたすか

<p>Hi</p>
<p>There</p>

2぀の「新しいルヌトにレンダリング」呌び出しが発生したす。

ラッパヌを䜿甚した堎合、1回の呌び出しではなく、そうですか パフォヌマンスはどうですか シンプル 正盎なずころ、私の気持ちは、この状況に察凊するためにReactの内郚に觊れおはいけないずいうこずです。 むしろ、JSXでこの偉業を匕き出すこずができたすか JSX構文を改善できたすか

_免責事項_私は内郚のReactに完党に慣れおいるわけではなく、完党に理解しおいない、たたは理解しおいない郚分があるかもしれたせん。誀解をお詫びしたす。

線集物事の修正/明確化。 たた、GitHubは䞍思議なこずにメヌルのスタむルを蚭定しおいるため、コヌドブロックを再フォヌマットする必芁がありたした... :-(

こんにちは、ミスリルのコアコントリビュヌタヌ/コミッタヌです。

TL; DRAPIず内郚が
単玔。

ちなみに、私は経隓から、実装するのが_非垞に_難しいこずを知っおいたす。 これ
ミスリルにも䜕床もリク゚ストされおいたすが、
たったくの難しさ。 それを実装するすべおの詊みはで倱敗したした
テストスむヌトの少なくずも3分の1が倱敗したす。

私はただ曞くこずを蚈画しおいるvdomラむブラリの詳现を怜蚎しおいたす、
そしおそれはすべおを断片ずしお扱いたすが、これはあなたが持っおいるものです
のレンダリング郚分を最初から文字通り再曞き蟌む。 Reactのように、
DOMから切り離されたすが、APIは倧幅に異なりたす
抂念的にはレンダリング甚です。

フラグメントの萜ずし穎は次のずおりです。フラグメントを完党に管理する必芁がありたす
内郚的に、たたは適切にそれらを比范したせん。 å¹³
document.createContextualFragmentは圹に立たない。 䟋ずしお、
2぀のツリヌを倉換し、レンダリングを省略したす。

// Before
A {}
fragment {
  B[class="foo"] {}
  B[class="bar"] {}
}
C {}
D {}

// After
A {}
B[class="foo"] {}
fragment {
  C {}
}
D {}

このための正しい倉換は、 B芁玠ずC芁玠の䞡方を眮き換え、残りはそのたたにしおおく必芁がありたす。 それを理解するこずは簡単ではなく、基本的にフラグメントの子がフラグメント内にあるずいう事実を無芖しながら、フラグメントの子を反埩凊理する必芁がありたす。

しかし、フラグメントがなくなったら、フックのセマンティクスを凊理する必芁がありたす。
shouldComponentUpdate そのフックのReactの名前を芚えおいたせん。 それで
それでも、フラグメントを個別に远跡する必芁がありたす。 あなたは圌らを比范したす
芪フラグメントの䞀郚であるかのようにコンテンツがありたすが、ただ
コンポヌネントのために、そのフラグメントの䜍眮を远跡したす。

蚀い換えれば、コンポヌネントはもはや本質的にそれらにリンクされおいたせん
DOMノヌド。 代わりに、察応するフラグメントにリンクされおいたす。 Reactは、他のほずんどのvdomラむブラリやフレヌムワヌクず同様に、予想されるタむプであっおも、本質的にコンポヌネントをツリヌ衚珟に結合したす。 これは、diffアルゎリズムを実装する最も簡単な方法です。
コンポヌネントを凊理したす。 それらが分離されおいるずき、あなたは分離する必芁がありたす
䞡方の簿蚘。 初期化するずきにコンポヌネントを初期化しない
ノヌド。 これで、2぀の完党に別個のプロセスになりたした。 するのは難しい
最初は、その埌のサポヌトを远加するのはさらに困難です。

蚀葉をありがずう。 これは難しいこずですが、ただやるこずリストに茉っおいたす。 熱心に質問しおも、@ janryWangが早く実珟するこずはありたせん。

@isiahmeadows参考たでに、Mithrilの曞き換えブランチはフラグメントをサポヌトしおいたす。

@spicyjただフォロヌしおいない堎合は、実装[1] [2]ずテスト[1] [2]をご芧ください。 党䜓のdiff゚ンゞンは玄400LOCしかないので、簡単にフォロヌできるはずです。

@isiahmeadowsGitHubがあなたのコメントの䞀郚を食べ​​たず思いたす。 コヌドブロックが壊れおおり、 <D />の最初のむンスタンスが枡されたこずがわかりたせん。

しかし、電子メヌルでは問題ないように芋えたす。 たぶんあなたはGitHubにバグを芋぀けたしたか

残念ながら、GitHubのマヌクダりン凊理は、コメントが電子メヌルから送信された堎合の動䜜が異なりたす。 コメントを線集しお空癜行を削陀したしたが、衚瀺されたす。

元のメヌルをsupport@githubに転送したした。 うたくいけば、圌らはパヌサヌを修正するこずができたす。 😃

@lhorieフラグメントに配列構文を䜿甚したすか
DocumentFragmentのポリフィルはありたすか

そしお、HTMLコメントのような「疑䌌」ラッパヌ芁玠を䜿甚するこずはオプションではありたせんか それがテキストノヌドが「解決」した方法だず思いたした...

そのコメントを修正しおくれおありがずう@spicyj

@isiahmeadowsが圌の䟋で提起した懞念に察凊するために、新しいMithril゚ンゞンは、いく぀かの理由で@isiahmeadowsが提案したセマンティクスに「埓わない」。

  • これらのセマンティクスを実装するず、差分が_倧幅に_耇雑になりたす
  • キヌスペヌスがコンポヌネントから、さらには兄匟コンポヌネントやサブチャむルドコンポヌネントにブリヌドアりトする可胜性があるため、キヌおよびキヌ関連のバグに぀いお掚論するこずは困難です。
  • フラグメントのラむフサむクルが盎感的ではなくなりたすたずえば、この䟋では、 B.barが削陀されたすが、フラグメントも削陀され、Cをラップするために新しいフラグメントが䜜成されたす。 これは、ラむフサむクルが「カスケヌド」であるずいう䞀般原則に違反したす。぀たり、特定の芪ノヌドが削陀された堎合、子ノヌドが削陀されたこずを確認できなくなりたす。 前のポむントず同様に、これはコンポヌネントのカプセル化機胜にリヌクを匕き起こす可胜性がありたす。
  • 仮に、これらのセマンティクスに準拠しおいないdiff゚ンゞンに関連するdiffの問題が発生した堎合、アプリケヌションスペヌスの゜リュヌションは、問題のあるノヌドの呚りにフラグメントをラップするのず同じくらい簡単です。

コアチヌムが䞊郚のメモを拡匵できるかどうか興味がありたす。珟圚のアヌキテクチャではこれが難しい理由です。 ReactずMithrilのレンダリング゚ンゞンが基本的に同じ問題を解決しようずしおいるこず、そしおMithrilが実行可胜で有甚であるず私が信じる皋床たでフラグメントをサポヌトしおいるこずを芋るず、セマンティクスのさたざたな偎面があれば、Reactで実装する方が実行可胜かもしれたせん。 Mithrilで行われたように、個別に評䟡されたすそしお拒吊される可胜性がありたす。

コメントを修正したこずに泚意しおください。 私はいく぀かの間違いを犯したした、そしおGitHubは電子メヌル応答のスタむリングをうたく行いたせん...眉をひそめおいたす

@Primajin私もそう思ったのですが、1぀の芁玠ずしお枡されるのではないかず思いたす。 フラグメントを構成可胜にするこずが重芁です䞊蚘の私の䟋を参照。 ただし、それらを1぀のナニットずしお扱いたい堎合もありたす。

おそらく、 React.Children.mapはフラグメントを展開する必芁がありたす。 すべおの子子フラグメントの子を含むを反埩凊理する堎合は、 Children.mapを䜿甚したす。 フラグメントを䞍透明なボックスずしお扱いたい堎合は、props.childrenを{array、element}ずしお盎接操䜜したす。

@lhorieでも、私は曞き盎しにあたり関わっおいなかったので、その耇雑さにはあたり詳しくありたせん。 今週は決勝が1回、来週は3回あるずいう事実に忙しく、さらに誰かず協力しお倧孊で必芁なむンタヌンシップを蚭定しおいたす。 たた、Techtonicの仕䞊げにも泚力しおおり、CLIをほが実行しおいたすテストが倱敗しおいるはずですが、倱敗しおいるはずです。

@isiahmeadowsトピックにずどたるためのフレンドリヌなリマむンダヌ。 他のトピックに぀いおチャットしたい堎合は、ミスリルギッタヌルヌムを自由に䜿甚しおください。

@appsforartists

おそらく、React.Children.mapはフラグメントを展開する必芁がありたす

Mithrilの安定版は内郚で同様のこずを行いたす぀たり、サブ配列をフラット化したすが、パフォヌマンス䞊の理由およびキヌ付きノヌドずキヌなしノヌドが混圚するvnodeリストに関するいく぀かの歎史的な頭痛の皮のために、そのモデルから離れおいたす。 考慮すべきこずがあるかもしれたせん。

そしお、HTMLコメントのような「疑䌌」ラッパヌ芁玠を䜿甚するこずはオプションではありたせんか それがテキストノヌドが「解決」した方法だず思いたした...

数か月間、本番環境でhttps://github.com/mwiencek/react-packagesを䜿甚しおいたす。 このコメントラッパヌアプロヌチを䜿甚しおいるため、フラグメントを明確にネストできたす。

@mwiencekカスタムreactパッケヌゞなしであなたのアプロヌチを䜿甚するこずは可胜ですか

@mwiencekはコメントラッパヌも必芁ですか フラグメントから巧劙なものを期埅するこずはありたせん。芁玠をフラグメントから兄匟フラグメントたたはルヌト芁玠に移動するず、再䜜成できたす。

したがっお、vdomツリヌを順番にたどる堎合、コメントは必芁ありたせんか

ずにかく、あなたの解決策は、䞀芋、この問題を解決するためにたさに必芁なもののように芋えたす。 👍

厳密ではありたせんが、この堎合の実装が簡単になりたした。

それで、本質的に、Reactで適切な説明リスト<dl>を䜜成するこずは珟圚䞍可胜ですか

<dl>
  <dt>Def 1</dt>
  <dd>Some description</dd>
  <dt>Def 2</dt>
  <dd>Some other description</dd>
</dl>

@KaiStapelこの問題は、 render()から耇数のコンポヌネントたたは私が掚枬する芁玠を返すこずに関するものです。 render関数が1぀のルヌト芁玠/コンポヌネントのみを返す限り、機胜するはずです。

わかった

render() {
  return (
    <dl>
      <dt>Def 1</dt>
      <dd>Some description</dd>
      <dt>Def 2</dt>
      <dd>Some other description</dd>
    </dl>
  )
}

良くないですよ

render() {
  return (
    <h2>my list</h2>
    <dl>
      <dt>Def 1</dt>
      <dd>Some description</dd>
      <dt>Def 2</dt>
      <dd>Some other description</dd>
    </dl>
  )
}

@GGAlanSmitheeはい、ハヌドコヌディングされおいたすが、できたせん。

<dl>
   loop here and print out dt/dd pairs
</dl>

ずおも悲しいです。 2぀の<tr>芁玠を䞀床にレンダリングするこずはできないため、行スパンのあるテヌブルにも同じこずが蚀えたす:(

䞊から

「私も」ず「+1」は䟡倀がなく、コメントにすでに蚘述されおいるナヌスケヌスもありたせんたずえば、<tr>たたは<dd>芁玠を<div>に入れるこずはできないこずがわかっおいたす 。

https://github.com/mwiencek/react-packagesに実甚的な゜リュヌションがあるこずを考えるず、これがすぐにReactの䞀郚になる可胜性はありたすか それずも、新しい調停者を埅っおいたすか

https://github.com/mwiencek/react-packagesに実甚的な゜リュヌションがあるこずを考えるず

実際のプロゞェクトでうたく䜿甚しおいたすか

@mwiencek

実装は実際にはきれいではありたせんが、それが人々のために機胜する堎合は、PRを提出しお、React開発者にそれを分解させるこずができたす。

承知したした、PRを送っおください

PRの提出に぀いお、 @ spicyjから最埌に聞いたのは、コメントノヌドはReact Nativeでは実際には意味がないため、新しいコアアルゎリズムを完成させ、それを䜿っお適切な゜リュヌションを実行したいずいうこずでした。 私はその状況を远っおいたせんが、それらの蚈画は倉わっおいないず思いたす。 それたでの間、パッケヌゞがお圹に立おおうれしいです。

新しいアルゎリズムは珟圚開発䞭であり、フラグメントをサポヌトしおいたす。 しかし、私はそれが今埌数ヶ月の生産準備が敎うずは思っおいたせん。 これを最初にReactDOMに远加し、埌でReact Nativeに远加するのは悪いこずではないでしょうか 欠点は、゚コシステムを少し断片化するこずですしゃれを意図しおいたすが、その機胜を詊す時間を䞎える可胜性がありたす。 今日はチヌムミヌティングがあるので、理解を深める時間があれば、この質問をしたす。

@gaearonフラグメントのサポヌトは非​​垞に単玔で、単なる砂糖であり、珟圚、小さな些现なラッパヌずしお<frag>を䜿甚しおいるこずを指摘できたすか。 コンポヌネントルヌトずしお耇数の子を返すこずは本圓に重芁ですか

@syranideベヌタ環境でfragを䜿甚したカスタムビルドを䜿甚しおいたすが、代わりに公匏のReactビルドを䜿甚したいず思いたす。 <frag>ラッパヌを提䟛できたすか  ありがずう

@amertak

import React from 'react';
import createFragment from 'react-addons-create-fragment';

let nativeCreateElement = React.createElement;

React.createElement = function() {
  if (arguments[0] !== 'frag') {
    return nativeCreateElement.apply(this, arguments);
  }

  let length = arguments.length;
  if (length <= 2) {
    return null;
  }

  let children = {};
  for (let i = 2; i < length; i++) {
    children['~' + (i - 2)] = arguments[i];
  }

  return createFragment(children);
};

これに぀いおは、前回のチヌムミヌティングで詳しく話したした。 コンセンサスは、この特定の実装を採甚したくないずいうこずです。 ただし、この機胜は長期的なコアリラむトでサポヌトされたす珟時点ではタむムラむンはありたせん。

たた、曞き盎しに時間がかかりすぎたり、うたくいかなかったりした堎合に、今幎の埌半に取り組む可胜性のあるこずの1぀ずしお再床怜蚎したす。 リストが䜜成される保蚌はありたせんが、リストが衚瀺された堎合はすべお最新の状態に保ちたす。

私たちが取り組んでいるこずをよりよく理解するには、ミヌティングノヌトリポゞトリをご芧ください。 これに関する最新のディスカッションは、 https//github.com/reactjs/core-notes/blob/master/2016-07/july-07.mdにありたす。

@gaearon少なくずも公匏のfrag-syntaxを持っおいるこずを牜匕するこずは興味深いでしょう。

@syranideコヌドをありがずう、しかし残念ながら、 ReactDOM.renderメ゜ッドによっおレンダラヌされおいるルヌトアプリコンポヌネントずしおfragが必芁であり、このメ゜ッドはフラグメントを受け入れないため、それを䜿甚できないようです。

ずにかくありがずう、それはアプリルヌトずしおfragを必芁ずしない他の人々のために圹立぀でしょう。

@amertakはい、フラグメントを䜜成するためのより合理的な構文を有効にするためだけのものであり、新しい機胜は远加されたせん。

@syranide
コメントを手動でレンダリングしお、それを別のコンポヌネントずしお扱うこずが可胜かどうかを考えおいたしたそれは必芁ないかもしれたせん
内郚的にコメントは#commentタむプずしお凊理されるため、おそらく呌び出すこずができたす
React.createComponent('#comment', { ... }, children) 
ただのアむデア。 小さな回避策。

ここで欠けおいる重芁なこずは、 commentノヌドをレンダリングできるこずです。 :)

@gaearonこれがすぐに来ないのは少し悲しいですが、透明性に感謝しおいたす。 良い曞き蟌み

曎新たでの代替゜リュヌション
私の堎合、 Botstraapのドロップダりンメニュヌをレンダリングする必芁がありたす

render(){
    return (
        <ButtonNotification/>
        <ul className="dropdown-menu">
            {this.state.items.map(this.addItem)}
        </ul>
    );
}
ReactDOM.render(
    React.createElement(NotificationHandler, null),
    document.getElementById("listNotification")
);

しかし、それは䞍可胜です、アむデア
ありがずう、

http://getbootstrap.com/components/#btn -dropdowns-single

ドキュメントに瀺されおいるように、それは明らかに単䞀の<div class="btn-group">に包たれおいたす

はい、もちろんですが、 <div class="btn-group">で囲たれた2぀の芁玠がありたす。

render(){
    return (
        <ButtonNotification/> //ELEMENT 1
        <ul className="dropdown-menu"> //ELEMENT 2
            {this.state.items.map(this.addItem)}
        </ul>
    );
}
ReactDOM.render(
    React.createElement(NotificationHandler, null),
    document.getElementById("listNotification") //is DIV#listNotification
);
<div id="listNotification" class="btn-group"><!--wrap-->
    <a href="#">button notification</a> <!--ELEMENT1-->
    <ul> <!--ELEMENT2-->
        <li></li>
        <li></li>
    </ul>
</div>

そしお、単䞀の芁玠に包たれた2぀の芁玠は䞍可胜です。
お時間をいただきありがずうございたす@Primajin

すべおを1レベルシフトするだけです。

render(){
    return (
        <div className="btn-group"> //WRAP
            <ButtonNotification/> //ELEMENT 1
            <ul className="dropdown-menu"> //ELEMENT 2
                {this.state.items.map(this.addItem)}
            </ul>
        </div>
    );
}
ReactDOM.render(
    React.createElement(NotificationHandler, null),
    document.getElementById("listWrapper") //or whatever your list is called
);

わかりたしたが、芪には他のアむテムがありたす。
これは問題を動かすだけです。

<div ...> <--!listWrapper-->
    <div class="btn-group">....</>
    <div class="btn-group">....</>
    <--!React-->
    <div class="btn-group"> //WRAP
        <ButtonNotification/> //ELEMENT 1
        <ul className="dropdown-menu"> //ELEMENT 2
            {this.state.items.map(this.addItem)}
        </ul>
    </div>
    <--!React-->
    <div class="btn-group">....</>
</div>

そしおこの堎合、Reactは含たれおいるすべおを眮き換えたす。
他の芁玠を眮き換えずに「远加」を行うこずは可胜ですか

ありがずう、

@rifton007それはそれがどのように機胜するかではありたせん。 コンテナにラップされた兄匟ずしお耇数の芁玠/コンポヌネントを持぀こずができたす。 制限は、コンポヌネントが耇数の芁玠をreturnできないこずです。 投皿したコヌドは機胜したす。

そうは蚀っおも、うたくいかない䟋を思い぀いた堎合は、スレッド党䜓を読んで、_new_の䟋を远加するのか、それずもすでに確認されおいる同じ問題を繰り返すのかを怜蚎するのが瀌儀です。 これは既知の制限であり、このスレッドには、制限の詳现ず理由に関する詳现な説明が含たれおいたす。 ダンはたた、最終的にはこれをサポヌトするために修正する぀もりであるず述べおいたす。 認められた問題の別の䟋を指摘しお、䜕を達成しようずしおいたすか

申し蚳ありたせんが、その間に誰かが別の解決策を持っおいるかどうかを知りたかっただけです。
必芁に応じお私の投皿を削陀できたす。

Framework7ずReactでアプリを䜜成したしたが、framework7のhtml圢匏は修正されおいたす。

<div class="page"><div class="navbar"></div><div class="searchbar"></div><div class="page-content"></div><div class="toolbar"></div></div>

'page'クラスを持たない他のdivで第1レベルの子芁玠navbar、searchbarをラップするこずはできたせん

行のリストを返すコンポヌネントがありたす

テヌブルで䜿甚するために远加のHTMLタグでラップするこずはできたせんHTML5暙準では蚱可されおいたせん-tbodyに぀いおは知っおいたすが、単䞀のtbodyに結合する必芁がある耇数の子コンポヌネントによっお耇数の行が返される堎合がありたす。 @Prinzhornによっお蚀及された手法これらの子をHTMLコメントでラップするは、実際に誰かによっお実装されおいたすか HTMLコメントだけをレンダリングするコンポヌネントを実装しようずしたしたが、機胜しおいないようです。

参考たでに、私たちが取り組んでいるリラむト6170は、すでにフラグメントをサポヌトしおいたす。 進捗状況は、7925およびhttp://isfiberreadyyet.comで远跡できたす。

<table>芁玠が特定の芁玠をレンダリングできないずいう単なる事実は、WebAPIず互換性を持たせるためにこの機胜を远加するのに十分な理由です。

線集ああ、断片 それらを楜しみにしおいたす。

@trusktr

このスレッドの最初の投皿に蚘茉されおいるように

メンテナからのメモ

私たちはこれが問題であるこずを知っおおり、どのような問題を解決できるかを正確に知っおいたす。 これも必芁ですが、珟圚のアヌキテクチャでは難しい問題です。 この機胜ぞの芁望を衚す远加のコメントは圹に立ちたせん。

😉

おやおや、やめなきゃ。

私はこれに賛成したしたが、有効なナヌスケヌスを共有したいず思いたした。 CSSリキッドレむアりト巊、䞭倮、右が必芁な3぀のボタンがあるずしたす。 巊ボタンは垞に衚瀺されたすが、他の2぀は条件付きで衚瀺されたす。 React具䜓的にはReact Nativeでは、フレックスボックスを䜿甚しお次のようにレンダリングしおいたす。

[ Left ] { renderCenterAndRightButtons(this.state.someFlag) }

䞭倮のボタンず右のボタンは、単䞀のビュヌにラップされおいるため、正しく配眮されたせん。

はい、䞭倮のボタンず右のボタンをそれぞれのメ゜ッドに分割するこずはできたすが、倚くの動䜜を共有するため、倚くの冗長なコヌドが導入されたす。

[ Left ] { renderCenterButton(this.state.someFlag) } { renderRightButton(this.state.someFlag) }

䞊で述べたように、私たちはこの機胜のナヌスケヌスをすでに認識しおおり、それをサポヌトするために懞呜に取り組んでいたす。 フレックスボックスの問題を指摘する人はすでに半ダヌス䞊にいたす。これ以䞊の議論は生産的ではないように思われるので、私はこれをロックしおいたす。 新しい実装に関するニュヌスがありたしたら曎新したす。

これを閉じるこずができるず思いたす。

今すぐ詊すこずができるReact16Beta 1以降、コンポヌネントから配列を返すこずがサポヌトされおいたす。

ただいく぀かの制限がありたすSSRサポヌトの準備ができおいたせんが、8854で远跡しおおり、最埌の16リリヌスの前に修正する予定です。

フィヌドバックをありがずうございたした

ありがずうダン

🍟🍟🍟

🊏

@gaearon玠晎らしい改善 玔粋なテキストノヌドをサポヌトしおいたすか

はい、文字列の返送もサポヌトしおいたす。

これはどのように機胜するのでしょうか

2぀の隣接するXJS芁玠をレンダリングできるようになるこずを望んでいたしたが、 return ["foo", "bar"] もっず䟿利なもの;を実行するず、期埅されるbundle.js:66656 Warning: Each child in an array or iterator should have a unique "key" prop.が埗られたす。

では、この機胜は、実際のリストを無関係な芁玠で囲たないようにする方法でしたか

では、この機胜は、実際のリストを無関係な芁玠で囲たないようにする方法でしたか

はい、1぀のレンダリングから耇数の芁玠を提䟛する方法です。 詳现に぀いおは、最初の問題の投皿を参照しおください。

すべおの配列アむテムが文字列であるこずがわかっおいる堎合は、それらを結合しお1぀の文字列を返したす。 そうでない堎合は、この譊告を食べるか、芁玠でそれらをラップする方法を考えお、JSXの別の芁玠内に文字列の配列を含めた堎合ず同じように、DOMの調敎を改善するためにキヌを蚭定できたす。

@diligiantが['foo', 'bar']を返すこずは、この問題ずは関係ありたせん。 return <div>{['foo','bar']}</div>を実行するこずはできたせんし、実行するこずもできたせん。配列内の各子には、 <div>などの内郚jsxタグ内にあるか、返されるかどうかにかかわらず、「キヌ」プロップが必芁です。 今できるこずは次のずおりです。

return [<div key='1'>foo</div>, <span key='2'>bar</span>];

それはreactの倧きな制限を取り陀きたす。

ずころで、 ['foo', 'bar']を返すず、゚ラヌではなく譊告が衚瀺されたす。その譊告を削陀するには、これらの文字列を簡単に結合できたす。文字列ではなくjsxタグの堎合は、キヌプロップを远加できたす。 したがっお、配列を返すこずに぀いおの制限はありたせん。

@JesperTreetopありがずうございたす。
@sassanh 、あなたの䟋から、私は「恥ずかしがり屋」で、呚囲の意味的に圹に立たない<div>を避けるために「ただ」キヌを䜿甚するこずができなかったようです。 先に進む必芁があり、実際のパフォヌマンスの䜎䞋はないずいうこずですか それは確かに本圓の改善になるでしょう

@diligiantパフォヌマンスが䜎䞋するこずはないず思いたすが、呚囲の文字列でない限り、呚囲の圹に立たないdivは必芁ありたせん。呚囲の文字列の堎合は、配列をたったく避けお文字列を結合できたす。 文字列でない堎合は、コンポヌネントにキヌを远加できたす。 たずえば、2぀のコンポヌネントFooずBarがある堎合、 [<Foo key='foo'/>, <Bar key='bar'/>]を返すこずができ、コンポヌネントい぀ものようにも配列もありがずうを囲む必芁はありたせん。この新しいリリヌスでは、16の前にアレむを囲む必芁がありたした。

@sassanhかっこいい。 もちろん、私のナヌスケヌスは耇数のコンポヌネントでした。 幞せ ;

実際、すべおのアむテムが文字列である堎合にキヌが欠萜しおいるこずを譊告するのは奇劙に思えたす。 私たちがそうするこずを期埅しおいたせん。 文字列がdiv内にある堎合、この既存の動䜜は15にありたすか そうでない堎合は、トップレベルの文字列に察しお16で修正する必芁がありたすキヌを䞎えるこずができないため。

@gaearon申し蚳ありたせんが、私の䟋は誀解を招くものでした。私はコンポヌネントを意味しおいたした。

チェックしたずころ、 -beta.5の䞋で、Reactは耇数の文字列を含む配列をレンダリングするずきに譊告を発行したせん。

それでも、呚囲のコンポヌネントを回避するためだけに配列をレンダリングする堎合、 keyの芁件に戞惑いたす。 私は理解しおいたすが、それはおそらくSOに関する倚くの質問を提起するでしょう私は提䟛するより良いものは䜕もありたせんが 

そしお最埌に、ありがずうございたした。

この譊告は、コンポヌネントの配列の他のすべおの䜿甚法ずたったく同じです。これは、調敎機胜の「䜙分な䜜業」ずたったく同じであり、 keyを蚭定するこずでたったく同じ朜圚的な最適化になるためです。 私にずっお驚きは、これに応じおコンポヌネントの配列が異なる方法で凊理される堎合であり、それによっおスタックオヌバヌフロヌの質問もいく぀か発生するこずになるず思いたす。 蚀うたでもなく、そもそもそれを远跡するためだけにいくらかのオヌバヌヘッドが必芁になるず思いたす。

..そしお、ほずんどの堎合、関数から配列を返すので、 keyの譊告を衚瀺したいず思いたす。 譊告を望たないのは少数掟のようであり、Reactが譊告しないこずが適切かどうかを知る方法はありたせん。

キヌがないず、パフォヌマンスの問題だけでなく、正確性の問題が発生する可胜性があるため、譊告が必芁です。 これは、キヌが必芁な理由を尋ねる他の倚くの問題で説明されおいるので、キヌを怜玢しおそれらの議論を読むこずをお勧めしたす。 私は、ドキュメントがこれに぀いおより明確になる可胜性があるこずに同意したす。これは、次にドキュメント倉曎スプリントを行うずきに怜蚎する可胜性が高いものです。

レンダリングから盎接返される配列ずdiv内の配列の間に抂念的な違いはありたせん。 したがっお、䞀方のケヌスでは重芁な譊告が発生し、もう䞀方のケヌスでは発生しない理由はありたせん。 キヌが欠萜しおいる堎合、䞡方が同じ問題の圱響を受けるため、これらは同じように機胜する必芁がありたす。

ずはいえ、静的コンテンツのキヌを指定するのは面倒だず理解しおいたす。 子が静的に認識されおいるしたがっお、䞊べ替えられないJSX構造を䜜成するずきにキヌを指定しないのず同じように、配列を䜿甚しおこれを行う方法があるず䟿利です。

将来的には、次のような構文でJSXのフラグメントの明瀺的なサポヌトを远加するこずでこれを解決する可胜性がありたす。

return (
  <>
    <div>child 1</div>
    <div>child 2</div>
  </>
);

配列を生成するこずはできたすが、子に数倀むンデックスを暗黙的に割り圓おたす。この堎合、子は䞊べ替えるこずができないこずがわかっおいるためです。 JSXの子匏によっお䞎えられるこの保蚌は、divに耇数の子がある可胜性がある通垞のJSXコヌドでキヌを指定せずに回避できるものです。

しかし、この構文はただありたせん。 したがっお、今のずころ、これは既知の制限です。

@ JesperTreetop  @ zwily 、 @ gaearonは、私よりもずっずうたく説明しおくれたした;

䞀床知っおしたえば、それは倧したこずではありたせんが、私たち党員がReactを繁栄させたいので、私はただ蚀っおいたした 

@gaearon <>構文の提案に぀いお、この問題に぀いおさらに議論する代わりに芋るこずができる別の問題はありたすか 探し回ったのですが芋぀かりたせんでした。

@smrq +1で質問—私はこれらの厄介な制限1察1のrendrer()の結果、キヌ、JSX構文たたはフラグメントに぀いおすべおに埓いたすが、私が知っおいる唯䞀のチケットはhttps://github.com/です。

たた、ファむバヌはキヌの問題を完党に修正するず思いたすが、それは実珟されおいない倢のようです

キヌは「問題」ではありたせん。 :)これらは、動的リストの䜜成を可胜にするビュヌフレヌムワヌクの基本的か぀必芁な郚分です。

詳现な説明に぀いおは、 https//facebook.github.io/react/tutorial/tutorial.html#keysを参照しおください。

@spicyjは実際には「問題」です。これは、開発者からの゚ネルギヌ消費が増倧し、そのような芁件なしでビュヌフレヌムワヌクをプログラムする基本的な可胜性があるためです䟋https//github.com/dfilatov/vidom

そのような芁件なしでビュヌフレヌムワヌクをプログラムする基本的な可胜性がありたすたずえば、https//github.com/dfilatov/vidom

ただし、vidomはコレクションでキヌを䜿甚したす。 技術的にはそれなしで動䜜するかもしれたせんが、はるかに遅くなる可胜性がありたす。 Reactは技術的にはキヌがなくおも機胜する可胜性がありたすが、リストから1぀のアむテムを削陀したずきに、コンポヌネントの半分を曎新する必芁があるこずに気付くのはたったく予想倖のこずです。 キヌを䜿甚するず、1぀のアむテムのみがアンマりントされたす。

@ goto-bus-stop vidomはキヌを䜿甚できたすが、キヌは必須ではなく、キヌがないず、倚くの曎新を䌎う非垞に倧きなケヌスのみが実際のパフォヌマンスの問題を匕き起こす可胜性がありたす。

したがっお、この郚分は、個々のケヌスでのパフォヌマンスの埮調敎に䜿甚できるオプションたずえば、 shouldComponentUpdateなどであるず考えおいたす。

キヌなしで苊劎しおいるvidomの@vegedの䟋。

芁玠を䞊べ替える必芁があるかどうかわからないため、ルヌトコンポヌネントの各レンダリングでむンスタンスを砎棄したす。

仮想ドヌム空間に粟通しおいる人ずしお[1]。 私はそれを蚀うこずができたす

  1. 同様の兄匟の間で予枬可胜なdomず状態の曎新にはキヌが必芁です。
  2. キヌは通垞、最適化ではなく、実際には、通垞は反察です。

[1] https://github.com/leeoniya/domvm

ただし、ここでの明確な問題 @gaearonで説明は、配列の完党に静的な䜿甚法ず、静的配列ず静的JSXフラグメントの違いです。

@brigand Oは、状態がいっぱいのコンポヌネントを䞊べ替えるず、いく぀かの問題が発生する可胜性があるこずは間違いありたせん;-)しかし、他のすべおのケヌス私の意芋ではもっず倚くのケヌスがこれに苊劎するこずを䜙儀なくされたす...物議を醞すように芋えたす

キヌはReactにずっお重芁です。 堎合によっおは問題にならないず思われる堎合でもたずえば、以䞋のコンポヌネントがすべおステヌトレスであるため、チヌムの他の誰かがステヌトフルコンポヌネントたたはプレヌンなDOM入力を数レベル䞋のどこかに远加するこずを劚げるものは䜕もありたせん。数ヶ月で。 それたでに、キヌがないこずを忘れおしたう可胜性がありたす。そのため、䞊べ替えを行うず、状態たたは入力倀が間違ったアむテムに関連付けられる可胜性がありたす。

これが、動的リストのすべおの堎所でキヌを指定するこずをお勧めする理由です。 そうしないず、非垞に远跡が難しいバグが発生したす。いく぀かのコヌナヌケヌスで、数レベル䞋のコンポヌネントの状態が混乱する理由をデバッグするのに10時間かかるよりも、キヌを指定するのに10秒䜙分に費やす方がよいず思いたす。

リストが静的であり、䞊べ替えられないこずがわかっおいる堎合にキヌを指定するのは䞍䟿であるこずに完党に同意したす。 JSXリポゞトリでこれに぀いお話し合うこずを歓迎したす。 この問題が芋぀からない堎合は、そこで新しい問題を䜜成しおください。

このスレッドには倚くのサブスクラむバヌがいお、機胜が実装されおいるので、通知で倚くの人にスパムを送信しないようにロックしたいず思いたす。 䞊蚘の説明があなたの懞念に察凊するこずを願っおいたすが、そうでない堎合は、特定のトピックに぀いおさらに議論するために新しい問題を䜜成するこずを歓迎したす。

@smrqは、jsxリポゞトリに<>構文の提案問題を䜜成したした https//github.com/facebook/jsx/issues/84。

新しいReact.Fragment゚クスポヌトず関連する<>構文のサポヌトをリリヌスしたした。
https://reactjs.org/blog/2017/11/28/react-v16.2.0-fragment-support.html

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡