Ant-design: ロングリストの最適化

䜜成日 2016幎11月10日  Â·  80コメント  Â·  ゜ヌス: ant-design/ant-design

参照 https 

  • []遞択708614540
  • []オヌトコンプリヌト17604
  • []ドロップダりン8076
  • []カスケヌド9079
  • []衚12408
  • []リスト
  • []ツリヌ1503919522
  • [] TreeSelect13266
Inactive ⚡ Performance ❓FAQ 🗣 Discussion

最も参考になるコメント

https://github.com/bvaughn/react-window

たぶん、これを組み蟌みにする必芁がありたす。

党おのコメント80件

蚘事を読んで最埌にReactabularに぀いお話した埌、それが実珟する仮想化効果は本圓に良いですが、デヌタが少ないずパフォヌマンスの問題が発生するため、圓面はこのテヌブルが必芁だずは思いたせん。デヌタが倚い堎合はペヌゞングをお勧めしたす。正しい。

react-lazyloadは、ビュヌポヌトにないコンポヌネントのdivもレンダリングしお高さを埋め、スクロヌルバヌを正しく衚瀺できるようにしたす。これはReactabularずreact-virtualizedの実装です。

Reactabularはtrを䞊䞋にレンダリングし、高さは衚瀺されおいない行の高さに蚭定されたす。

react-virtualizedは、リストの倖偎にdivを蚭定し、高さを支えおから、 position: absolute; top: 36700px;介しお衚瀺される芁玠の䜍眮を調敎するこずです。

反応仮想化ず反応無限の䞡方で、各アむテムの高さを指定する必芁がありたすが、これは制限のように感じたす。

各アむテムの行の高さを決定できるずいう前提の䞋で、 react-infiniteパッケヌゞに基づくテヌブルビュヌは悪くありたせん。

むントラネットアドレスを貌り付けないでください。 。 。

反応仮想化ず反応無限の䞡方で、各アむテムの高さを指定する必芁がありたすが、これは制限のように感じたす。

minItemHeightたたはminRowHeightどうですか。私によるず、すべおの行の最小の高さがわかっおいる堎合は、 react-virtualizedずreact-infiniteで十分です。

うん、 heightずminHeight䞡方が機胜したす

この問題に長い間悩たされおきた昚日、私は぀いにあらゆる高さをサポヌトするスクロヌルリスト゜リュヌションを䜜成したした。 react-list-any-height

@ wangtao0101ドキュメントを曞きたせんか

@benjycui兄匟、私はただ曞く時間がありたせんでした。

@benjycuiドキュメントOK

このスレッドのほずんどを読むこずができないので、これが関係ない堎合はお詫びしたすが、JaegerUIの仮想スクロヌルで採甚したアプロヌチを共有したいず思いたした。 珟時点では䞀般化されおいたせんが、それでも䞀芋の䟡倀があるかもしれたせん。

jaegertracing / jaeger-ui-src / components / TracePage / TraceTimelineViewer / ListView / index.js

アむテムは固定の高さである必芁はありたせんおそらくreact-list-any-heightに䌌おい

src / components / TracePage / TraceTimelineViewer / ListView / index.jsL321、L373

PRからのいく぀かのメモ

react-virtualizedから始めたしたが、スクロヌル䞭のレンダリングされおいない領域のフラッシュず動的なサむズ蚭定/定期的に倉曎されるコンテンツに関する問題により、本質的に同じこずを行う叀いプロゞェクトが埩掻したす src/components/TracePage/TraceTimelineViewer/ListView/* 。

ListViewは、私たちのニヌズに合わせお最適化されおいたすそしお甚途が狭くなっおいたす。 これらの最適化には次のものが含たれたす。

  • レンダリングの頻床を枛らし、レンダリングごずに倧量のアむテムをレンダリングするアプロヌチを採甚する
  • 珟圚のスクロヌル方向だけでなく、䞡方向のスクロヌル甚に最適化
  • 最小および通垞の「オヌバヌスキャン」の抂念がありたす。぀たり、珟圚レンダリングされおいるアむテムのリストが最小バッファヌを満たしおいる堎合は、それ以䞊レンダリングしたせんが、そうでない堎合は、最小バッファヌずいく぀かの远加を十分に満たすようにレンダリングしたす。䞊手

たた、Ant Designの最も優れた䜜品です +1で䜜業するのは楜しいこずです

远加予定のバヌゞョンはありたすか

私は同じ問題に遭遇したした。 䜕か進歩はありたすか

同じ問題を抱えおいたす。

これに぀いお䜕か進展はありたすか

@ SeanCraftsman 、 @ nunohora 、 @ aindong – react-virtualizedを䜿甚たす。

@tiffonこれはリストでは機胜したすが、テヌブルでこれを行う方法がわかりたせん。

こんにちは、react-virtualizedでTreeSelectを䜿甚する最良の方法は䜕ですか

これに぀いお䜕か進展はありたすか react-virtualizedをAntdテヌブルず組み合わせるこずは可胜ですか

反応仮想化ず反応無限の䞡方で、各アむテムの高さを指定する必芁がありたすが、これは制限のように感じたす。
各アむテムの行の高さを決定できるずいう前提の䞋で、react-infiniteパッケヌゞに基づくテヌブルビュヌは悪くありたせん。

@paranoidjk @benjycuiちょうどfyi、react-virtualizedは、その堎で芁玠のサむズを決める未知の高さの行でも機胜したす https 

たた、これに぀いおの私の考えantd内で仮想化を耇補する必芁はないかもしれたせん。 おそらく、代わりに、ナヌザヌが自分で仮想化を実装できるように、メニュヌ/テヌブル行の提䟛を担圓するレンダリングメ゜ッドを公開するこずから始めるのがよいでしょう。

参考たでに、react-windowは次䞖代のreact-virtualizedだず思いたす。

https://github.com/bvaughn/react-window

朚、2018幎7月5日には、午前4時01分AMゞョナサンDumaine [email protected]
曞きたした

たた、これに぀いおの私の考え耇補する必芁はないかもしれたせん
antd内の仮想化。 おそらく代わりに、レンダリングメ゜ッドを公開したす
ナヌザヌが実装できるようにメニュヌ/テヌブル行の提䟛を担圓したす
仮想化自䜓が良いスタヌトになるでしょう。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/ant-design/ant-design/issues/3789#issuecomment-402638593 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/ACMpUchXXaG0moutACfeWCLTQTZqoadnks5uDcfdgaJpZM4KueVV
。

それで、同様の問題がありたすか 😳

転送コンポヌネントでも非垞に遅いです

react-virtualizedでantdテヌブルを䜿甚するための珟圚の回避策は䜕ですか
私はantdテヌブルをreact-virtualizedテヌブルでレンダリングするこずに぀いおはわかりたせんが、react-virtualizedリストはrowRendererプロパティを䜿甚しおantdのリストで䜿甚できたす。
たたはantdテヌブルを䜿甚せずにカスタムスタむルでreact-virtualizedテヌブルを䜿甚したすか

これに関する曎新はありたすか

パフォヌマンスの問題はただ明らかです。できるだけ早く解決できるこずを願っおいたす。

React Windowを䜿甚しお、これを解決するPRを䜜成するこずに興味がありたす。 この埓属性を導入するこずに぀いおのマンテナヌの考えは䜕ですか

React Windowを䜿甚しお、これを解決するPRを䜜成するこずに興味がありたす。 この埓属性を導入するこずに぀いおのマンテナヌの考えは䜕ですか

私はこれをしばらくの間ひどく必芁ずしおいたした。 今のずころ、react-windowを䜿甚しおAntDの倖郚にテヌブルを実装するこずを䜙儀なくされる可胜性がありたす。 これがサポヌトされるたで、パフォヌマンスは長いリストでは受け入れられず、倚くの行を持぀䜿甚可胜なテヌブルが必芁です仮想化が必芁です。

私のチヌムの@ swillis12は、玠晎らしいパフォヌマンスを備えたreact-tabularを䜿甚しおいたす。

この問題が解決枈みずしおマヌクされおいるこずを確認したいのですが。珟圚、長いリストは䜿甚できたせん。

この問題に匕き続き泚意を払っおください。ペヌゞングだけでビゞネスニヌズを解決する方法はありたせん〜

https://github.com/bvaughn/react-window

たぶん、これを組み蟌みにする必芁がありたす。

この号は2幎間発行されおいたす。 。 。 。 。 。

遅くなるよりはたしだ 😉

だから、䜕か進歩はありたすか

ねえ 私たちはこれが倧奜きです どうですか

プロゞェクトはツリヌテヌブルを䜿甚する必芁があり、ノヌドが倚数ある可胜性があるため、antdテヌブルに基づいおコヌドを倉曎し、仮想読み蟌みを远加したした。デモの各ノヌドの䞋に1999のサブノヌドがあり、詳现なテストを行わないずバグが発生する可胜性がありたす。
treetable
リアクションりィンドりプロゞェクトを参照しおください。最初の数階から提䟛された现い道路に感謝したす。フロント゚ンドに觊れたばかりなので、コヌドの倉曎が少し面倒です。再線成しお投皿する時間がありたす。参照しおください。

フォロヌ+1

奇劙な問題もありたす。 FormずTableが兄匟コンポヌネントずしお存圚する堎合、 Formぞの入力は非垞にスタックしたす。特にTable fixed堎合、ペヌゞ党䜓は基本的に䜿甚できない操䜜の状態にありたす。 Tableデヌタの背景はペヌゞごずに30行でペヌゞングされたす。埌でデモを远加したす。 react tool枡したす。 Form同じレベルのすべおの

gif

package.json

"antd": "^3.12.3",
 "react": "^16.3.2",

このペヌゞは、DidMountでのデヌタの読み蟌みを陀いお、他のロゞックを実行したせん。

これが実装される予定の堎合、誰かが私たちに曎新を教えおもらえたすか もしそうなら、い぀利甚可胜になるか教えおいただけたすか。 これは私たちのアプリケヌションのブロッカヌになり぀぀あり、先に進むためにAntdを削陀するこずを怜蚎する必芁がありたす。これは、このフレヌムワヌクが本圓に奜きなので悲しいこずです。

React Windowを䜿甚しお、これを解決するPRを䜜成するこずに興味がありたす。 この埓属性を導入するこずに぀いおのマンテナヌの考えは䜕ですか

私はこれをしばらくの間ひどく必芁ずしおいたした。 今のずころ、react-windowを䜿甚しおAntDの倖郚にテヌブルを実装するこずを䜙儀なくされる可胜性がありたす。 これがサポヌトされるたで、パフォヌマンスは長いリストでは受け入れられず、倚くの行を持぀䜿甚可胜なテヌブルが必芁です仮想化が必芁です。

@ swillis12こんにちは、テヌブルのパフォヌマンスの問題にどのように察凊したしたか

列が倚すぎる堎合、芁件の1぀は、70を超える列を衚瀺する必芁があるこずです。ペヌゞングが実行されたずしおも、それでも非垞に遅れたす。

ドキュメントにはreact-virtualizedの䟋があるず思いたす。
トリック。

朚、2019幎3月28日には、午前4時48分AMデヌン[email protected]は曞きたした

列が倚すぎる堎合、芁件の1぀は、70を超える列を衚瀺する必芁があるこずです。ペヌゞングが実行されたずしおも、それでも非垞に遅れたす。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/ant-design/ant-design/issues/3789#issuecomment-477502300 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/ACMpUYf-yuPS8ag-mr47H7b4Z2rWHVnLks5vbIHSgaJpZM4KueVV
。

私はこの問題を1幎以䞊フォロヌしおいたす...
ただ解決されおいたせん...
次に、react-virtualizedずreact-windowが耇雑すぎお、機胜が倚すぎたす。これらの機胜ドキュメントを読むのが面倒である必芁はありたせん。自分で小さなホむヌルを䜜成したした。<br i = "8" />この機胜は、reactず各行の高さ以倖に䟝存関係がないこずです。動的にするこずができ、事前に䞎える必芁はありたせん

https://github.com/Autodesk/react-base-tableこれを芋お

GitHub
高いパフォヌマンスず柔軟性を備えた倧芏暡なデヌタセットを衚瀺するためのreactテヌブルコンポヌネント-Autodesk / react-base-table

懞念事項...䌁業は1000行のデヌタを衚瀺する必芁がありたす。

https://github.com/bvaughn/react-window

たぶん、これを組み蟌みにする必芁がありたす。

それ以䞊の進歩はありたすか

入力ずドロップダりンを䜿甚しおTimePickerを䜜成しようずしおいたす。ドロップダりンは他のコンポヌネントでは機胜しないため、メニュヌを䜿甚しおドロップダりンオヌバヌレむで1440アむテム24時間* 60分をレンダリングする必芁がありたす。

しかし、この量のデヌタでのドロップダりンパフォヌマンスはひどいものです。

だから、私の質問はreact-windowをドロップダりンオヌバヌレむずしお䜿甚するにはどうすればよいですか

ここでも私の懞念を広めたいず思いたす。 Google Product Taxonomyの完党なリストを含むリストの遞択ドロップダりンをレンダリングしようずしおいたすが、ドロップダりンが衚瀺されるたでに数秒遅れお非垞に遅くなりたす。 これたでの進捗状況は

今解決策があるかどうか知りたいですか
オヌトコンプリヌトでreact-virtualizedを䜿甚したいのですが、䜿甚できたせん。 私が戻るずき

@jingxiawl 1぀の回避策は、ドロップダりンを怜玢ベヌスのドロップダりンにするこずです。 別の芋方をすれば、ナヌザヌが手動で䞋にスクロヌルできるようにアむテムの長いリストを衚瀺するのはあたりナヌザヌフレンドリヌではないので、状態を䜿甚しお怜玢フレヌズをフィルタリングするこずでドロップダりン遞択リストを管理したす。 Reactフックを䜿甚しおいる堎合は、 useEffectを䜿甚しお、コンポヌネントの再レンダリングを最小限に抑えるこずができたす。

これにより、遅いレンダリングの痛みが軜枛されるこずを願っおいたす。 それでも、遞択リストが長くなったために、このコンポヌネントの速床が䜎䞋しないこずを願っおいたす。

@yoonwaiyan
ありがずうございたした。 しかし、今の問題は、倚くのデヌタが陀倖されおいるこずであり、長いリストでは垞に問題が発生したす。

@yoonwaiyanこれを行う䟋はありたすか

antd.Table仮想テヌブル、APIは元のテヌブルず完党に敎合性があり、rowHeightを枡す必芁はありたせん
https://github.com/ctq123/ant-virtual-table

@reconbotこれは、Reactフックを䜿甚しお行った簡単な䟋です。

Edit loving-taussig-0b9yv

完党に機胜するフォヌムコンポヌネントであるreact-windowに基づく
https://github.com/nexxLuo/tablex

@reconbotこれは、Reactフックを䜿甚しお行った簡単な䟋です。

Edit loving-taussig-0b9yv

それでも私には非垞に遅い。

@douglasjuniorうん、それは問題を完党に解決するこずを意味するのではなく、少なくずもナヌザヌに悪い読み蟌み䜓隓を䞎えないための私のプロダクションコヌドの䞀時的な解決策ですが、それをさらに最適化する方法に぀いおの提案を受け入れおいたす。

䞊蚘のいく぀かのスレッドにリンクされおいるant-virtual-tableを参照しお、圌らが䞻匵しおいるように、テヌブルのこの問題をどのように解決したかを確認できたす。

ずころで、このSO投皿には、長いリストの問題に察するいく぀かの正圓な解決策がありたす。antdチヌムがそれを芋おくれるこずを願っおいたす https //stackoverflow.com/questions/38033442/big-list-performance-with-react

こんにちはアントチヌム
この問題に関するニュヌスはありたすか すぐに修正する予定はありたすか 倧量のデヌタがある堎合、リストテヌブルを䜿甚するのは実際には非垞に苊痛です
@ afc163
ちなみに玠晎らしい仕事!!!

こんにちはアントチヌム
遅延読み蟌みでTreeコンポヌネントを䜿甚しおおり、 TreeNode䞋に子ずしお玄20,000 TreeNodes TreeNodeたす。 このように倧量のデヌタがあるツリヌをナビゲヌトするのは非垞に遅く、苊痛です。 この問題に぀いお䜕か新しいこずはありたすか

こんにちはアントチヌム、
初恋愛antdコンポヌネント。
私はSelectコンポヌネントを䜿甚しおいたすが、2000を超えるオプションがあるため、コンポヌネントが非垞に遅くなるため、 react-windowたたはその他の方法で最適化する必芁がありたす。 これに぀いお䜕か曎新があれば教えおください。

これを参考にできたすか このリポゞトリには、テヌブルコンポヌネントに関する重芁な情報がたくさんありたす。

https://github.com/wubostc/virtualized-table-for-antd

SuperSelectは、数䞇のデヌタの仮想リストをサポヌトするantd Selectに基づいおいたす。これは、私のプロゞェクトで正垞に機胜するantdSelectず同じAPIです。

今、SuperSelectはantd-virtual-select移動したす

antd-virtual-selectリポゞトリ

これはデモです

かっこいいもの@iblq ant select https://codesandbox.io/s/superselect-8xlwkずの比范を含めるために、デモを少し倉曎したした

こんにちはアントチヌム、
初恋愛antdコンポヌネント。
私はSelectコンポヌネントを䜿甚しおいたすが、2000を超えるオプションがあるため、コンポヌネントが非垞に遅くなるため、 react-windowたたはその他の方法で最適化する必芁がありたす。 これに぀いお䜕か曎新があれば教えおください。

https://github.com/react-component/selectアルファ版はすでに仮想スクロヌルを実装しおいたす。
antd4.0がそれを持っおいるのを埅぀必芁があるだけです。

@megawaclmaoなに。 同じスレッドをフォロヌしおいたすか 誰かがあなたを雇うこずを申し出たのはどこですか

4.0を埅たなければならないず思いたす⌚

ただし、䞊蚘のSuperSelectデモは非垞にすばらしいものです。 非垞にパフォヌマンスも優れおいたす。 残念ながら、300行以䞊をコピヌしお貌り付けおパフォヌマンスの高いSelectを取埗したくありたせん。特に、TypeScriptを䜿甚しおいおJSにあるためです。 それでもかなりクヌルです

react-windowがリストだけに限定されおいなかったらいいのに...

もう1぀のオプションはreact-virtualized-selectですが、2぀の問題がありたす1Antではありたせん😄、2メンテナンスされなくなったため、問題が発生した堎合は🀷‍♂

䞍思議に思う人のために、非ドロップダりン/遞択デヌタのこれに察する1぀の解決策は、オプションのpagination小道具を備えたListコンポヌネントです。 チャヌムのように機胜したす

LazySelectInputは、レンダリングの問題なしに2000を超える読み蟌みを凊理する必芁がありたす。

Edit antd select infinite scroll

新しいテヌブルコンポヌネントは仮想リストも実装したす。https//github.com/react-component/table/releases/tag/v7.0.0-alpha.16を参照しお

@abenhamdine既存のant蚭蚈プロゞェクトで仮想化をサポヌトするために新しいテヌブルコンポヌネントを䜿甚する方法はありたすか

@abenhamdine既存のant蚭蚈プロゞェクトで仮想化をサポヌトするために新しいテヌブルコンポヌネントを䜿甚する方法はありたすか

おそらく、しかし私芋ではantd 4.0を埅぀方が良いです、新しいテヌブルコンポヌネントはすでに4.0prepareブランチに統合されおいたす。

昚日、アルファ版を远加しようずしたしたが、うたくいきたせんでした。

了解したした。ずりあえずこれを䜿甚したす。

https://github.com/wubostc/virtualized-table-for-antd

それは少し厄介なドキュメントを持っおいたした、私はたたcssを少し修正する必芁がありたした。

v4を埅぀間にv3で新しいselectコンポヌネントを䜿甚する方法はありたすか たたは、仮想化リストを実装し、同じantdスタむルを持぀サヌドパヌティの遞択コンポヌネントはありたすか

線集。
䞊蚘のSuperSelectコンポヌネントを䜿甚しおいたすが、完党に機胜しおいたす

すべおのアップデヌト 

@ shivam-ahuja antd 4、4.0.0のSelectコンポヌネントを詊すこずができたす-rc1が出おいたす。
https://next.ant.design/components/select/#components-select-demo-big-dataを参照しお

テヌブルフィルタリングは機胜したしたか 11331に瀺すように、倧量のデヌタセットのフィルタリングでただ長い読み蟌み時間が発生しおいたす。 アむテムが1,000を超えるテヌブルでは、フィルタリングはほずんど䜿甚できたせん。

ロングリストのレンダリングパフォヌマンスはv4で最適化されおいたす https 

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