@oliviertassinari íìŽì§ 맀ê¹ììŽ êžŽ 목ë¡ì ë ëë§ í ë ì±ë¥ì ëìŽêž° ìíŽ tbodyì ê°ì 컚í
ìŽë륌 ì¶ê°íë ê²ì ê³ ë € íìê² ìµëê¹?
ë¹ì ìŽ ë륌 ì¬ë°ë¥ž ë°©í¥ìŒë¡ ê°ëŠ¬í¬ ì ìë€ë©Ž ëë ìŽê²ì ì°ë¥Œ ê²ì
ëë€ ( react-virtualized
?)
íì¬ APIê° react-virtualized
ìì ê°ëší íµí©ì íì©íꞰ륌 ë°ëëë€. ì°ëŠ¬ë íµí©ì ë ê°ëšíê² ë§ë€êž° ìíŽ êµ¬íì ë³ê²œí ì ììµëë€.
묞ìì ë°ëªš ìì ê° ììŒë©Ž ë©ì§ ê²ì ëë€.
ëììŽ ë ììë ê²œì° ë€ìì ëª©ë¡ / ë©ëŽ https://codesandbox.io/s/oQ0nkl5pk ìì íµí© ìì ì ëë€
@oliviertassinari ëë ìë§ìŽìê³ mui êµ¬ì± ììì ì ìŽìžëŠ¬ì§ ììêž° ë묞ì react-virtualized
ììŽ ë§ë€ììµëë€.
ëí ëŽ íì¬ ì룚ì
ì ëì í
ìŽëž ëìŽì ëì ìŽ ëë¹ê°ìë ìì css ê³ ì thead ë° ì€í¬ë¡€ ê°ë¥í tbodyì
ëë€ (Safariììë í
ì€íž ëš).
ì€í¬ë¡€ ê°ë¥í tbodyê°ìë íì ìììë theadë ë°ìŽí° 귞늬ëì íì ììì
ëë€.
ì€í¬ë¡€ ë ë°ìŽì±ì ì¶ê°íê³ ì±ë¥ì ì¡°ì íê³ ìŒë¶ ê²°íšì ìì íê³ ìì§ë§ íë¥íê² ìëí©ëë€. ìœ 2400 íì ëíŽ "ê°ì"ë ëë§ìíê³ ììµëë€.
Table
êµ¬ì± ììì ëí ì§ë¬ž :
ref
륌 ì¬ì©íë ë°©ë²? ì ë TableThead
ëìŽë¥Œ ìë ê³ì°í©ëë€ : 묞ì ë<TableHead ref={ ref => this.tableThead = ref }>
ì€ì DOM 컚í
ìŽë ìì ë°ííì§ ììµëë€ TableThead
íì§ë§ ìžì€íŽì€ (ì ì© í ë ë°ìì©ì Ʞ볞 ëì ë°ìì© ref
ìŠ, ì ì©íŽìŒ ëê° ë묞ìíì§-DOMì ìì륌) TableThead
êµ¬ì± ìì ì첎; ë€ë¥ž êµ¬ì± ììê° ìŽê²ì íìë¡ í ì ììµëë€. ê·žë ë€ë©Ž 첫 ë²ì§ž ë ëë§ ë ììì 죌ìŽì§ ìœë°±ì ì ì©íë 몚ë MUI êµ¬ì± ììì refHandler
ìë ìŽì ë 묎ìì
ëê¹? (ëë ìŽê²ì ì€ëª
íŽì€¬ìŒë©Ž ì¢ê² ë€ @ _ @)
ëŽ íì¬ ì룚ì
ì ìŽìí©ëë€
const theadHeight = ReactDOM.findDOMNode(this.tableThead).clientHeight; // eslint-disable-line react/no-find-dom-node
ìŠ, ë ìŽì ì¬ì©ëì§ ìë findDomNode
íê³ eslintë ë¹íì±íí©ëë€.
border-bottom
ìŽ í ëì ì
ì ì ì©ëë ìŽì ë 묎ìì
ëê¹?
stripe={true}
propìŒë¡ TableBody
íì ìëìŒë¡ ì€ížëŒìŽííë ê²ì ìŽë»ìµëê¹?
.MuiIconButton.root
ì zIndex ì€íìŒ ìì±ìŽìë ìŽì ë 묎ìì
ëê¹? ð€
ëë ìŽê²ì ëíŽ ìì ë ê²ì 곧 ê²ìíì¬ ìŒë°ì ìž ë°©ììŒë¡ ì±í í ììë ê²ì 볎ì¬ì€ ì ìꞰ륌 ë°ëëë€.
ìŽë ê² ê·ì°®ê²íŽì 믞ìíì§ë§ mui @ next륌 ë§ìŽ ì¬ì©íê³ ììŽì ë§ì ì¬ì© ì¬ë¡ë¥Œ ë°ê²¬íê³ ììµëë€!
ìë§ìŽìê³ mui êµ¬ì± ììì ì ìŽìžëŠ¬ì§ ììêž° ë묞ì ë°ì ê°ìíììŽ ë§ë€ììµëë€.
ì€, ê·žê²ì ì°ëŠ¬ìê² ë¶ëë¬ìŽ ìŒì ëë€. ì°ëŠ¬ê° 묎ìì í ì ìëì§ ì ì ììµëê¹?
ë¹ì ì ìë í ì ììµëë€ innerRef
ìšì Ref ì»ì TableHead
. ref
ë withStyles(TableHead)
êµ¬ì± ììì ëí 찞조륌 ë°ê²ë©ëë€. ê·žëë ìëíì§ ììŒë©Ž rootRef
ìì±ì ë
žì¶ í ì ììµëë€. ê·žê²ì ì°ëŠ¬ê° ìŽë¯ž ì¬ì©íê³ ìë íšíŽì
ëë€.
ì€ë§ëŠ¬ ìì
~~ì€, ê·žê²ì ì°ëŠ¬ìê² ë¶ëë¬ìŽ ìŒì
ëë€.
ì€ì ë¡ react-virtualized
ì첎 컚í
ìŽë, Ʞ볞 table/thead/tbody
DOM ìì ë° ë¬žì 륌 ìŒìŒíš ì€í¬ë¡€ ê°ë¥í tbody
ê° íìí©ëë€.
ë묎 ë§ì ìì
ìŽ íìíìµëë€. MuiTable
ì ëí ìì ì룚ì
ì ë§ëë ê²ì ë§€ì° ìœìµëë€.
rootRef
ë
žì¶íë ê²ìŽ ì¢ìµëë€ ( render
ë©ìëì TableThead
죌 ììê° Thead
DOM ìì ì첎ëŒê³ ê°ì ).
ê·žë¬ë©Ž border-bottom
ì tr
ë¡ ì®ê²šìŒí©ëê¹? ìŽ ë¬žì 륌 ì ì© ë¬žì ë¡ ì®ê²šìŒí©ëê¹?
ì€ë¬Žë¬ íì ì믞í©ëë€. like tr:nth-child(odd) { backgroundColor: f2f2f2
ìœê² ì»ì ì ìì§ë§ ìŽë¯ž ížëŠ¬í hover={true}
ìììŽ ììŒë¯ë¡ ížëŠ¬í striped={true}
? :)
í°!
TableCell
ìì ì¬ì©íšìŒë¡ìš ë ë§ì ì ì°ì±ì ì ê³µíê³ ìë€ê³ ìê°í©ëë€.ref={rootRef}
ìëì§ ì ëªšë¥Žê² ìµëë€.<FormControl ref={rootRef} ...>
ë React êµ¬ì± ììì ëí 찞조륌 ë€ì ë°ííê³ ( FormControl
ë DOM ììê° ìëêž° ë묞ì) ê°ë°ìê° ëŽê° ì¬ì©íŽìŒíë íŽê²° ë°©ë²ì ì¬ì©íëë¡í©ëë€.rootRef
ê° ë€ì곌 ê°ìŽ ëìíëë¡íŽìŒí©ëë€.ë ëë§ ë êµ¬ì± ììì 컚í ìŽëê° DOM ììì ëê¹?
ref={rootRef}
ì ì©rootRef={rootRef}
ì ì ì©íììì€ => 첫 ë²ì§ž DOM ììë¡ ì í ë ê²ì
ëë€. ìŽë ê²íë©Ž ìœëë íì ì€ì DOM 찞조륌 ê°ê²ë©ëë€.ëŽê° ìê°í ììë í¬êŽì ìž ì룚ì
ì muiRef
ë° rootRef
ìì±ì ê°ë ê²ì
ëë€. ì¬êž°ì ì ìë "mui êµ¬ì± ìì"컚í
ìŽë (ìë 겜ì°)ì ìœë°±ì ì ì©íê³ íìë ëì²ëŒ ìœë°±ì ì ì©í©ëë€. ì ì ë§íë€.
ìŽë° ììŒë¡ ê°ë°ìë MUI refì DOM ref (íìí ëë§ë€ íìí ê²)륌 몚ë ìœê² ê°ì§ ì ììµëë€.
ìŽê²ìŽ ìë¯žê° ìë€ê³ ìê°íìëê¹?
ì ë§? @ _ @
ìì ! ëë íì ì¬ë£ ì¬ìì ììŽ
ref
ë° rootRef
ìì±ì ì¬ì©í©ëë€.ref
ê°ë¡ ì±ì ììì ì ì©í©ëë€.rootRef
ìì±ì ë°ê³ ìŽë¥Œ ë£šíž êµ¬ì± ìì Cì ì°žì¡°ë¡ ì ì©í©ëë€.ref
ê°ë¡ ì±ì ììì ì ì©í©ëë€.íì§ë§ 컎í¬ëíž Cìë rootRef ìì±ìŽ ìë€ë©Ž ìŽëšê¹ì?
êµ¬ì± ìì Aë ì¬ì©ì ììì ìê³ êµ¬ì± ìì Bë TextFieldê° ë ì ììŒë©° êµ¬ì± ìì Cë FormControlìŽ ë ì ììµëë€.
ê·žëì ì ëëµì ì²ìì rootRef
륌 ê°ëší ëì°ë¯žë¡ ìê°íìµëë€. ì°ëŠ¬ë ì°ì
íì ëíŽ ìê°íì§ ìììµëë€. ë°ëŒì íì¬ ëìì ê²°ì ì ìŽê³ ê°ëšíë©° ì€ëª
íë ì íììŽ findDOMNode API륌 ì¬ì©í ì ììµëë€.
@damianobarbati ì¬êž°ì ìžêž ë í ìŽëž ë° ê°ìí륌 ì¬ì©í ì€íìŽ react-virtual-list ì ëê¹?
listComponent = TableBody, itemComponent = TableRow?
êŽì¬ì ê°ì§ë§í Material 1.0ìŒë¡ ë°ì ê°ìí륌 ì¬ì©íëìŽ íë¡ì ížë¥Œ ììíìµëë€.
https://github.com/techniq/mui-table
ìì§ ì§íì€ìž ìì ìŽì§ë§ (https://github.com/techniq/mui-table/blob/master/TODO.md ì°žì¡°) ì ì© í ì ììµëë€. 묞ìë ë¶ì¡±íì§ë§ ì¬ì© ë°©ë²ì ëí ëëì ì»êž° ìíŽ ì€í 늬륌 ìŽíŽë³Žììì€.
@techniq ì ë§ íŽ ë³Žì
ëë€ ð! ëë ìŽë€ ìì ìì í
ìŽëž 묞ì ì¹ì
ì ìì
-https :
https://material-ui-next.com/discover-more/related-projects/#material-ui-specific-projects ì¹ì
ì ì¶ê° í ìë ììµëë€.
ë°ëŒì íë¡ì ížê° ë ì±ì íŽì§ë©Ž ìë €ì£Œììì€. íë¡ì ížë¥Œ í볎íêž° ìíŽ pull request륌 ìëœ í ì ìë€ê³ ìê°í©ëë€. :).
ì¬êž°ì react-virtual-list
ëí PRì ìííìµëë€. https://github.com/clauderic/react-tiny-virtual-list/pull/30 ìì material-uiì íšê» ì¬ì©í ì ììµëë€. div
íë ìœë©ëìŽ ììŒë¯ë¡ react-virtualìŽ ìëíê³ ì íší HTMLì ë§ëë ë° ìŽë €ìì 겪ììµëë€.
cc : @kgregory
@eyn ì íìŽ! react-virtualized ë° material-ui륌 ì¬ì©íì¬ ë¬Ží ì€í¬ë¡€ í ìŽëž 구íì ìë£íìµëë€. ì¡°ë§ê° ìì ì íšê» ëì§ê³ ì¶ìµëë€. ëŽê° í ë ëëìŽ ë¬žì ì 믞ë 방묞ì륌 ìíŽ ê·žëŠ¬ê³ ìë§ë 묞ìì ìë¡ì ì¬êž°ì ë§í¬ í ê²ì ëë€.
@kgregory ìì ì ëëìµëê¹? ì¬ì í ê°ìí ë ëšží°ëŠ¬ìŒ UI í ìŽëžì ëí Ʞ볞 ì룚ì ì ì°Ÿê³ ìëë° ì°Ÿêž°ê° ìœì§ ììµëë€ ... í° ëììŽ ë ê²ì ëë€!
ìì íŽ ì£Œì ì ê°ì¬í©ëë€!
@neofox ìëì, ì£ì¡í©ëë€. ëë ê·žê²ì ëíŽ ìì 볞 ì ìŽ ìì§ë§ ë¹ì ì ëëµì ì¢ì ìêž°ììŒì€ëë€. ìê°ì ëŽì ëê°ë¥Œ 몚 ìŒë €ê³ ë žë ¥íê² ìµëë€.
@oliviertassinari ë°ì ê°ìí 목ë¡ê³Œ íšê» ì¬ë£ 목ë¡ì ì¬ì©íë ë°©ë²ì 볎ì¬ì£Œë 첫 ë²ì§ž ì견 ì€ íëìì ìì ê° ìëíì§ ììµëë€. ìì§ë ê·ž ìê° ëì¬ ììµëê¹?
@rolandjitsu ì£ì¡í©ëë€. ìë ììµëë€. ìŽ ë¬žì ì êŽí ê²ì ëë€ :).
@oliviertassinari ìê² ìµëë€ . ìŽ ë¬žì ê° <List>
ìëëŒ í
ìŽëžì êŽí ê²ìŽëŒê³ ìê° íìµëê¹? ìëë©Ž 목ë¡ìë ì ì©ë©ëê¹?
@rolandjitsu 목ë¡, í, ì¢ ìŽ, 귞늬ë 목ë¡. 몚ë ëìŒí©ëë€. ìŽ ë¬žì ë ì¬ëë€ìŽ íšíŽìë³Žê³ ë€ë¥ž êµ¬ì± ììì ì ì© í ì ìëë¡ ê°ëší ë°ëªšë¥Œ ì¶ê°íë ê²ì ëë€. í ìŽëžì ê°ìíê° íìí ê°ë¥ì±ìŽìë êµ¬ì± ììì ëë€.
@oliviertassinari ì¬ë°ë¥ž ë°©í¥ìŒë¡ ë륌 ê°ëŠ¬í¬ ì ìë€ë©Ž ê· ìŽìì£Œê³ ì¶ìµëë€. ëŽê° ë§í ììë í, ì°ëŠ¬ë react-virtualizedì íµí© ë material-ui @ next ì Ʞ볞 ìì ìŽ íìí©ëê¹?
@ hassan-zaheer ì, í ìŽëž 묞ì íìŽì§ ëì react-virtualizedê°ìë ê°ëší ë°ëªšê° ížëŠì ìí í ê²ìŽëŒê³ ìê°í©ëë€. :).
ìë íìžì. ëŽ íë¡ì ížë¥Œ ì¡°ì¬ í ëìŽ ì€ë ë륌 ì°ì°í ë°ê²¬íìµëë€. ë°ëªš ëë ì¬ì© ì€ëª ìì êŽë šë ì ë°ìŽížê° ìëì§ ìê³ ì¶ìµëë€. @kgregory ìëë©Ž ëì íµí©íë ë° ëí íµì°°ë ¥ì ì ê³µ í ì ììµëê¹? í ìŽëžì ì€íìŒê³Œ ìŒêŽëê² ë³ŽìŽê²íë ê²ìŽ ì¢ì ê²ì ëë€.
@ zd-project ëŽ mui-virtualized-table íë¡ì ížë¥Œ ìŽíŽë³Œ ì ììµëë€.
ìì ìë mui-table ìŽìì§ë§ 2 ê°ë¥Œ í¬í¬íê³ ë€ë¥ž ì¬ì© ì¬ë¡ë¥Œ ì§ìíêž°ë¡ ê²°ì íìµëë€ ( mui-table
ë DOMì ì§ì íì©íê³ position: sticky
ë° <table>
ë ìŽìì곌 ê°ì ê²ì ì¬ì©í ì ììµëë€. (í / ìœ ì€í¬, ìë ëë¹ ë±) ë°ì ê°ìíììë ìŽë €ì ìµëë€.
ìŠ, mui-virtualized-table
ë ë©ì§ PRìì ìŽ í¬êž° ì¡°ì ì ì¶ê°íìµëë€.
ìŽ ë ìë€ ìŽëììŽ?
@techniq , mui-virtualized-table
ê°ì¬í©ëë€! ëëšíŽ! mui-org/material-ui
ë¡ ë³í© í ììë ê°ë¥ì±ìŽ ììµëê¹?
ëêµ°ê°ê° 묞ìì ëí ë°ëªšë¥Œ ìê°íë PRì ìŽë©Ž êž°ì ê²ì ëë€. ìŽë ê²íë©Ž ê°ìí ì ëµê³Œì ë ëì íµí©ì ìíŽ í ìŽëž ââAPI륌 ê°ì í ì ìëì§ ì¡°ì¬ í ì ììµëë€.
@mastertinner ì ìŽê²ì ìœìŽì ì¶ê°íŽìŒí©ëê¹? ê°ìíë ìµì í ì ëµì ëë€. 몚ëê° í° ë°ìŽí° ìžížë¥Œ ë ëë§íë ê²ì ìëë¯ë¡ 몚ë ì¬ëì ë²ë€ì ë¶ëŽìì£Œì§ ììµëë€.
@mastertinner 묞ììì íë¡ì ížë¥Œ ì°žì¡°íì¬ ììí ì ììµëë€ (ì : https://material-ui.com/demos/tables/#advanced-use-cases :)
ð ê³í ê°ë€ì
@mastertinner ì¬ì í ì¬ì©íë ëì (ê°ìíê° íìí ë), ê°ìíê° íìíì§ ìì ë ìë¡ìŽ mui-table ë ì¬ì©íê³ dom ( table
, tr
ì¬ì©)ì íì©í ì ììµëë€ td
, ëë ë ìŽììììí CSS 귞늬ë, ëª
ì ì ìŒë¡ ìŽ ëë¹ ë±ì íìì±ì ì ê±°)íê³ íë ë€ìì ê°ì ìŒë¶ ê³ êž íšíŽ ì position: sticky
(ê°ì í€ë륌 ìŽ )
@rogerstorm ììŽ ë¬žì ì 30 ë¬ë¬ë¥Œ í¬ìíìµëë€. IssueHuntìì볎Ʞ
ì€ë ìŽê²ì ê°ì§ê³ ëêž°ë¡ ê²°ì íì§ë§ ê¶ì¥íì§ ììµëë€ ð ì§êžê¹ì§ ì ì í ëŽì©ì ë€ì곌 ê°ìµëë€.
ì§ì°ì ì©ìíììì€. ì ë
žížë¶ì íë¥íì§ ììµëë€. ð Material-UI êµ¬ì± ìì ë° react-virtualized
êµ¬ì± ìì륌 ì¬ì©í©ëë€.
@joshwooding ëë ë¹ì ìŽ í ê²ê³Œ ëê°ì ìŒìíìµëë€. ê°ìí + ê³ ì í€ë (볞묞ìë§ ì€í¬ë¡€ ë° í¬íš) . 구íìì ë ê°ì ê°ë³ <Table>
ì¬ì©íë ê²œì° ëŽê° ì°Ÿì ê²ê³Œ ëìŒí 묞ì ê° ìë€ê³ ìê°í©ëë€.
numeric
)ìŽ ìëíì§ ììµëë€. <TableCell>
ëŽë¶ ë ìŽììì <div>
ì ê°ì êµ¬ì± ìì륌 ì¬ì©í ì ìêž° ë묞ì
ëë€.td
ë° tr
ì CSS ìì±ì ì ê³µ í ì ììµëë€. height
ëë max-height
륌 td
ë° tr
ì ì€ ììë ë°©ë²ìŽ ììŒë©° ì¬ë£ì <TableCell>
ìë ì첎 íšë©, ì¬ë°±ìŽ ììŒë¯ë¡ íì ëìŽë¥Œ ê³ ì íêž°ê° ìŽë µìµëë€.ì, ìì ì <TableCell>
ëŽë¶ì êµ¬ì± ììê° ë¶ê°íŒíë€ë ê²ì
ëë€. ìŽ ë¬žì 륌 ì°ìí ë°©ë²ìŒë¡ íŽê²°íëì§ ê¶êží©ëë€. ê·žë ì§ ìë€ë©Ž ê°ìí + ê³ ì í€ë (볞묞ìë§ ì€í¬ë¡€ë° í¬íš) ë ìê² (êž°ë¥ë§íŒ ìì) ì ì ì ë êµ¬ì± ììê°ëêž° ìŽë µë€ê³ ìê°í©ëë€.
@worudso íì¬ë íëì <Table>
ë§ ì¬ì©í©ëë€. ì«ì륌 ì ë¬íë ë°©ë²ì ì°ŸììŒíì§ë§ ì ëë¡ ìë í ì ììµëë€. íì€í ìì êµ¬ì± ììë ìëë©° ëŽ ìœëë ì¬ì í 몚ë ê³³ì ìì§ë§ ì¢ ë ìì
íê³ ê°ì í ì ìëì§ ìŽíŽë³Œ ê²ì
ëë€.
ì ë material-ui ë° react-virtualized륌 ì¬ì©íì¬ ê°ìí ë í ìŽëžì ìì±íë ë°©ë²ì 볎ì¬ì£Œë ìë ë°ì€ 륌 ë§ë€ììµëë€. ìŽ í¹ì ìì ë react-virtualized륌 ì¬ì©íì¬ í ìŽëžì í¬êž°ë¥Œ ì°œì ëìŽë¡ ì¡°ì í©ëë€.
ìì ì MuiVirtualizedTable
êµ¬ì± ìì ëìŽ ìì ìì ì¬ì©í ì ììµëë€.
MuiVirtualizedTable
ë Tableìì ì§ìíë 몚ë ìíì íì© í ì ììµëë€. rowClassName
ë ì§ì ì ì©ëì§ ìê³ ëì MuiVirtualizedTable
ì ì ë ë€ë¥ž ì€íìŒì ì¶ê°ë¡ ì ì©ë©ëë€.
columns
ìíì ê° ìŽì ì
ì ë ëë§ í ë ì¬ì©ëë ê°ì²Žì ë°°ìŽì ììí©ëë€. ê° ê°ì²Žë Columnìì ì§ìíë 몚ë ìíì ë°ì ë€ìŒ ì ììµëë€.
ë묎 ì€ë ê±žë €ì ì£ì¡í©ëë€. ë°ë¹Ž ììŽ.
ì°žê³ ë¡, ìŽì react-virtualized
íê³ì ìž react-window
ììµëë€. ëêµ°ê°ê° ê·žê²ì ìëíê³ ì¶ì 겜ì°.
@kgregory ìœë ìë ë°ì€ 륌 ê³µì íŽì£Œì ì ê°ì¬í©ëë€.
@joshwooding ë©ì§ ë°ëªš. ê³ ì í€ë륌 ê°ë ê²ìŽ ì¢ìµëë€ :). 구íì ìë£ í ì ìꞰ륌 ë°ëëë€. ì«ì ì ë¬ê³Œ êŽë šíì¬ ì ì ì§ì ì ì© í ììë ìŽì ë 묎ìì ëê¹? ë°ì ì°œ vs ë°ì ê°ìí
@oliviertassinari ì ë Table
컎í¬ëížì API륌 ì¬ì©íê² ë€ë 목í륌 ì€ì íê³ ì§êžì Column
컎í¬ëížë¥Œ íµíŽ 컀ì€í
props륌 ì ë¬í ììë ê² ê°ìµëë€. ë°ì ê°ìí ë°©ìì ì¬ì©íì§ ìê³ í ììë ë°©ë²ìŽìì ê²ì
ëë€.
@joshwooding https://github.com/bvaughn/react-virtualized/blob/master/docs/Table.md#headerrowrenderer 륌 ì¬ì©íŽ ë³Žì šìµëê¹?
@oliviertassinari ëë
const renderedHeader = headerRenderer({
columnData,
dataKey,
disableSort,
label,
sortBy,
sortDirection,
});
@oliviertassinari ê³ ì ëìŽ í ìŽëžì ê²œì° @kgregory ì ë°ëªšë¥Œ ìœê° ížì§ í ì ììµëë€. https://codesandbox.io/s/6vo8y0929k
ížì ëŽì ê°êž° ê³µì ë°ëªšë¡ ë§ë€êž° ìíŽ ë¹ ì§ ê²ìŽ ìë€ê³ ìê°í ì ììµëë€.
@issuehuntfest ëìŽ ë¬žì ì $ 60.00륌 ì§ìíìµëë€. IssueHuntìì볎Ʞ
@oliviertassinari ëë ìŽê²ì 구ííêž° ìíŽ ë žë ¥í ê²ìŽë€ :)
@joshwooding ìŽ í ìì²ì ì ì¶íìµëë€. IssueHuntìì볎Ʞ
@oliviertassinari ë IssueHuntìì볎Ʞ
@oliviertassinari ë
ê·žëŽë§ í ê°ì¹ê° ììµëë€. @joshwooding ì íìŽì!
ë¹ì·í ì구 ì¬íìŽ ìì§ë§ List êµ¬ì± ììì ê²œì° ... 목ë¡ì ìëìí€ë ë° ëìŒí ì ê·Œ ë°©ììŽ ìëí©ëê¹?
@mdizzy ì, 목ë¡ì ì ì¬í ë°ëªšë¥Œ ì¶ê° í ì ììµëë€.
ëë ì§êž ë°ì ì°œìŒë¡ 목ë¡ì ê°ììŒë¡ ë§ë€ë €ê³ ë žë ¥íê³ ììµëë€ (ìì±ìê° ì 첎 APIê° íìíì§ ìì ê²œì° ê°ìí ë ëì ì¬ì©íëë¡ ì ìíì§ë§ ê²°êµ ëª©ë¡ì ëí APIë ì€ì ë¡ ë³ê²œëì§ ììµëë€ ê·žë§íŒ)
ì§êžê¹ì§ ë ê°ì§ í° ë¬žì ê° ììµëë€.
1) ëª©ë¡ í목 ì€íìŒìŽ 깚ì¡ìµëë€. í¹í ì€ë¥žìªœ ììŽìœ / ëì곌 ê°ì í목ìì ê·žë ìµëë€. ê°ì ëª©ë¡ ìœì
ì€íìŒìŽ material-uiì ì€íìŒë§ê³Œ ì ìŽìžëŠ¬ì§ ìë ê² ê°ìµëë€.
2) ëì í ìëž í€ëë ê°ì ìŽì ë¡ ì§ì ë¶íŽì§ ê²ì
ëë€.
ëë ê·žë€ìŽ íšê» ë ì ìëíëì§ íìžíêž° ìíŽ ìë§ë ë°ì ê°ìí륌 ìë í ê²ì ëë€.
@MastroLindus 뚌ì ê°ìí ë°ëªšë¥Œ ìëíŽ ë³Žì šëì?
@oliviertassinari ëë ëŽ ë°©ìëë¡ ììíê³ ììì ì€ëª í 묞ì 륌 ë°ê²¬íê³ ê²ì íì¬ìŽ ì€ë ë륌 ì°Ÿììµëë€.
ê·žë° ë€ì ê°ìí ë°ëªšì ëíŽ ë°ê²¬íê³ ìœë륌 íìží 결곌 Ʞ볞ì ìŒë¡ ëŽê°íë ìŒê³Œ ëìŒíë€ë ê²ì ìê²ëììµëë€ (ëª©ë¡ ëì í ìŽëžìë§ ì ì©ëš).
ëŽ ë¬žì ë ì¢ ë êŽë šë 목ë¡ì
ëë€. ìŒë°ì ìž ê°ë
ì ìëíì§ë§ ììŽìœ, ìì
, ê³ ì í€ëì ê°ì í목ì ì ëë¡ ìëíì§ ììµëë€.
ììží, ìì ì견ìì ëŽ ë ê°ì§ ì¬íì ì°žì¡°íììì€.
묞ì ë²íž 1ì react-virtualizedë¡ íìëì§ ìë react-windowì 묞ì ìŒ ì ììµëë€. ì€ë ëë ëŽìŒ ìëíìë§ì ìë € ëëŠ¬ê² ìµëë€. ìë§ë ì°ëŠ¬ë ìŽìŽ ì¢ìŒë©° ë°ì ê°ìíë¡ ìë í ê²ì
ëë€. 볎ì.
묞ì ë²íž 2 (ê³ ì ì ìž íì í€ëê° ì ëë¡ ìëíì§ ìì) ìŽìšë í¬ì§ì
ëìŽ ë¬Žìš ìŒìŽ ììŽë 충ëì ìŒìŒí¬ ì ììŒë¯ë¡ ìŽì°šíŒ ìì ì룚ì
ìŽ íìíë€ê³ ìê°í©ëë€. ëêµ°ê° ë¹ì·í 묞ì ì ëíŽ https://github.com/marchaos/react-virtualized-sticky-tree 륌 ë§ë€ìì§ ë§ (ê³ ì í€ë륌 ì¬ì©í ë°ì ê°ìí ë ê±°ëê° ìì) ì§êž ì¡°ì¬ í ìê°ìŽ ìììµëë€.
@MastroLindus https://next.material-ui.com/demos/tables/#virtualized -tableì ëíŽ ìŽë€ 묞ì ê° ììµëê¹?
@oliviertassinari ìì.
ëŽ ë¬žì ë ê°ì í
ìŽëžìŽ ìëëŒ ê°ì 목ë¡ìë§ íŽë¹íë€ê³ ì§ì íìµëë€. (ë€ì : Table Virtualizedì ëí 묞ì ì ëíŽ êžì ì°ë ì€ìŽ ìŽì ì ê° ì
ëë€. ê°ìí ë 목ë¡ìë ì묎ê²ë ììŒë©° ë°ë¥Žê³ ìììµëë€ )
목ë¡ê³Œ êŽë šíì¬ : ListItemSecondaryAction, ListItemIcon ë° ListSubheader (ê³ ì í€ë í¬íš)륌 ì¬ì©íë©Ž ìì¹ê° ìë§ìŽëìŽ ìëíì§ ìë ê² ê°ìµëë€.
ìŽë¬í êµ¬ì± ììê° ììŒë©Ž react-windowë¡ ìì
í Ʞ볞 목ë¡ìŽ ì게ìµëë€ (ê·žëŠ¬ê³ react-virtualizedììë ëê°ìŽ í ê² ê°ìµëë€)
@MastroLindus í ë¡ ì # 15149ë¡ ì®êžž ì ìë€ê³ ìê°í©ëë€.
ê°ì¥ ì ì©í ëêž
@oliviertassinari ëë ìë§ìŽìê³ mui êµ¬ì± ììì ì ìŽìžëŠ¬ì§ ììêž° ë묞ì
react-virtualized
ììŽ ë§ë€ììµëë€.ëí ëŽ íì¬ ì룚ì ì ëì í ìŽëž ëìŽì ëì ìŽ ëë¹ê°ìë ìì css ê³ ì thead ë° ì€í¬ë¡€ ê°ë¥í tbodyì ëë€ (Safariììë í ì€íž ëš).
ì€í¬ë¡€ ê°ë¥í tbodyê°ìë íì ìììë theadë ë°ìŽí° 귞늬ëì íì ììì ëë€.
ì€í¬ë¡€ ë ë°ìŽì±ì ì¶ê°íê³ ì±ë¥ì ì¡°ì íê³ ìŒë¶ ê²°íšì ìì íê³ ìì§ë§ íë¥íê² ìëí©ëë€. ìœ 2400 íì ëíŽ "ê°ì"ë ëë§ìíê³ ììµëë€.
Table
êµ¬ì± ììì ëí ì§ë¬ž :ref
륌 ì¬ì©íë ë°©ë²? ì ëTableThead
ëìŽë¥Œ ìë ê³ì°í©ëë€ : 묞ì ëì€ì DOM 컚í ìŽë ìì ë°ííì§ ììµëë€
TableThead
íì§ë§ ìžì€íŽì€ (ì ì© í ë ë°ìì©ì Ʞ볞 ëì ë°ìì©ref
ìŠ, ì ì©íŽìŒ ëê° ë묞ìíì§-DOMì ìì륌)TableThead
êµ¬ì± ìì ì첎; ë€ë¥ž êµ¬ì± ììê° ìŽê²ì íìë¡ í ì ììµëë€. ê·žë ë€ë©Ž 첫 ë²ì§ž ë ëë§ ë ììì 죌ìŽì§ ìœë°±ì ì ì©íë 몚ë MUI êµ¬ì± ìììrefHandler
ìë ìŽì ë 묎ìì ëê¹? (ëë ìŽê²ì ì€ëª íŽì€¬ìŒë©Ž ì¢ê² ë€ @ _ @)ëŽ íì¬ ì룚ì ì ìŽìí©ëë€
ìŠ, ë ìŽì ì¬ì©ëì§ ìë
findDomNode
íê³ eslintë ë¹íì±íí©ëë€.border-bottom
ìŽ í ëì ì ì ì ì©ëë ìŽì ë 묎ìì ëê¹?stripe={true}
propìŒë¡TableBody
íì ìëìŒë¡ ì€ížëŒìŽííë ê²ì ìŽë»ìµëê¹?.MuiIconButton.root
ì zIndex ì€íìŒ ìì±ìŽìë ìŽì ë 묎ìì ëê¹? ð€ëë ìŽê²ì ëíŽ ìì ë ê²ì 곧 ê²ìíì¬ ìŒë°ì ìž ë°©ììŒë¡ ì±í í ììë ê²ì 볎ì¬ì€ ì ìꞰ륌 ë°ëëë€.
ìŽë ê² ê·ì°®ê²íŽì 믞ìíì§ë§ mui @ next륌 ë§ìŽ ì¬ì©íê³ ììŽì ë§ì ì¬ì© ì¬ë¡ë¥Œ ë°ê²¬íê³ ììµëë€!