React-window: рд╕рдВрд╕реНрдХрд░рдг 2 рдкрд░рд┐рд╡рд░реНрддрди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдЬреБрд▓ре░ 2019  ┬╖  44рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: bvaughn/react-window

рдпрд╣ react-window рдХреЗ рдЖрдЧрд╛рдореА рд╕рдВрд╕реНрдХрд░рдг 2.0 рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫрд╛рддрд╛ рдореБрджреНрджрд╛ рд╣реИред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдкреВрдЫрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд╕рдордЭ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдВред рдореИрдВ рдмрдВрдбрд▓ рдЖрдХрд╛рд░, рд░рдирдЯрд╛рдЗрдо рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд░рдЦрд░рдЦрд╛рд╡ рдЪрд┐рдВрддрд╛рдУрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рддреМрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 1 рд╕реЗ 2 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ , рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХрдИ рдХреЛрдб рдореЙрдб рдХреЗ рд╕рд╛рде рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдХрд╛рд░рдг, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЗ рд▓рд┐рдП, рдореИрдВ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдордЬрдмреВрдд рдХрд╛рд░рдг рди рд╣реЛ (рдЬреИрд╕реЗ рдЖрдкрдХреЛ рдбрд╛рдпрдирд╛рдорд┐рдХ рдЖрдХрд╛рд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред

рдореИрдВ рднреА рдЖрдЧреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБ рдФрд░ рд╡рд░реНрддрдорд╛рди рдбреЙрдХреНрд╕ рдХреЛ рдбреЛрдореЗрди рдкрд░ рдкрд┐рди рдХрд░ рд░рд╣рд╛ рд╣реВрдБ- рд╡рд┐рдВрдбреЛ-v1.now.shред рддрд╛рдХрд┐ рдЬрдм рдореИрдВ рд╕рдВрд╕реНрдХрд░рдг 2 рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди


рд╡рд┐рд╖рдпрд╕реВрдЪреА:
  • рдХрдо рдШрдЯрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ
  • рд░реЗрдВрдбрд░ рдкреНрд░реЙрдкреНрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • рдХреЛрдИ рдФрд░ рдЕрдзрд┐рдХ рдХреНрд╖реИрддрд┐рдЬ рд╕реВрдЪреА рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
  • рдХреЗрд╡рд▓ рдЧреНрд░рд┐рдб RTL рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ
  • onScroll рдХреЙрд▓рдмреИрдХ рд╕рдордп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди

    * рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди / deprecations

рдХрдо рдШрдЯрдХ

рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдШрдЯрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ

  • SimpleList (рдкрд╣рд▓реЗ FixedSizeList )

    • рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рд╕реВрдЪреА рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдкрдВрдХреНрддрд┐ рдКрдБрдЪрд╛рдИ рддрдп рдХреА рдЬрд╛рддреА рд╣реИ (рдФрд░ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

  • List (рдкрд╣рд▓реЗ DynamicSizeList )

    • рдЗрд╕ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЖрдХрд╛рд░ рдХреА рд╕рд╛рдордЧреНрд░реА (рдЬреИрд╕реЗ рдЪреИрдЯ, рдиреНрдпреВрдЬрд╝рдлрд╝реАрдб) рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рд▓рд┐рдП ResizeObserver API (рдпрд╛ рдкреЙрд▓реАрдлрд╝рд┐рд▓) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

  • Grid (рдкрд╣рд▓реЗ VariableSizeGrid )

    • рдЗрд╕ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рд░рдгреАрдмрджреНрдз рдбреЗрдЯрд╛ (рдЬреИрд╕реЗ рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ) рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдФрд░ рдХреНрд╖реИрддрд┐рдЬ рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреНрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЪрд░ рдЖрдХрд╛рд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рдЖрдХрд╛рд░ рдХреЛ рдорд╛рдкрдиреЗ рдФрд░ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред


рд░реЗрдВрдбрд░ рдкреНрд░реЙрдкреНрд╕

react-virtualized рд╕реЗ react-window рдореЗрдВ рдХрд┐рдП рдЧрдП рдкреНрд░рдореБрдЦ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдореЗрдВ рд╕реЗ react-virtualized children рдХреЛ рд░рд┐рдПрдХреНрдЯ рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП React.createElement(children, props)) ) рдХреЗ рдмрдЬрд╛рдп рдкреНрд░реЙрдкреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ children(props) )ред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░реЗрд░рдгрд╛рдПрдБ рдереАрдВ:

  • рд░рд┐рдПрдХреНрдЯ рдореЗрдореЛрдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ-рдЗрди рд╕реЙрд▓реНрдпреВрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕реЗ React.memo , useMemo , shouldComponentUpdate ) рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЖрдЗрдЯрдо рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдХреИрд╢рд┐рдВрдЧ рдЕрдореВрд░реНрдд рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред
  • рдЖрдЗрдЯрдо рдЬреИрд╕реЗ рд░реЗрдВрдбрд░ рдХреЗ рдЕрдВрджрд░ рд╣реБрдХ рдФрд░ рд╕рд╕реНрдкреЗрдВрд╕ "рдмрд╕ рдХрд╛рдо" рдЬреИрд╕реЗ рдПрдкреАрдЖрдИред
  • рдХреБрдВрдЬреА рдХреЛ react-window рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЙрдиреНрд╣реЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдВрдбрд░ рдкреНрд░реЛрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдФрд░ cloneElement рдХреЙрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛)ред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдХреБрдЫ рдбрд╛рдЙрдирд╕рд╛рдЗрдб рднреА рдереЗ:

  • рдЗрдирд▓рд╛рдЗрди рдЖрдЗрдЯрдо рд░реЗрдВрдбрд░рд░реНрд╕ рдПрдХ рдЙрдЪреНрдЪ рд▓рд╛рдЧрдд рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ "рдкреНрд░рдХрд╛рд░" (рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛) рдореВрд▓ рдШрдЯрдХ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕реЗ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЕрдирдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП рдкреЗрдбрд╝ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдбреЙрдХреНрд╕ рдХреЛ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рд┐рдЦрд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рднрд▓реЗ рд╣реА рд╡реЗ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред
  • рдХреНрдпреЛрдВрдХрд┐ рдЗрдирд▓рд╛рдЗрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдерд╛рдиреАрдп рджрд╛рдпрд░реЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдЗрдЯрдо рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рд╛рде рд░рд╛рдЬреНрдп рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдерд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП API рдХреЛ itemData рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ

рдЙрдкрд░реЛрдХреНрдд рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ react-window рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЗрдВрдбрд░ рдкреНрд░реЙрдкрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЬрдЯрд┐рд▓ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

const Example = ({ height, items, toggleItemActive, width }) => (
  <List
    height={height}
    itemCount={items.length}
    itemRenderer={({ index, key, style }) => {
      const item = items[index];
      return (
        <div key={key} onClick={() => toggleItemActive(index)} style={style}>
          {item.label} is {item.isActive ? "active" : "inactive"}
        </div>
      );
    }}
    itemSize={35}
    width={width}
  />
);

рдХреЛрдИ рдФрд░ рдЕрдзрд┐рдХ рдХреНрд╖реИрддрд┐рдЬ рд╕реВрдЪреА рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ

рдкрд╣рд▓реЗ, рд╕реВрдЪреА рдШрдЯрдХреЛрдВ рдиреЗ рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рджреЛрдиреЛрдВ рд▓реЗрдЖрдЙрдЯ рдореЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рд░рдЦрд░рдЦрд╛рд╡ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рдЕрддреНрдпрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд▓рдВрдмрд╡рдд рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рд╣реИ, рдореИрдВ layout="horizontal" рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рд╣рдЯрд╛ рджреВрдВрдЧрд╛ред


RTL рд╕рдкреЛрд░реНрдЯ

рдЧреНрд░рд┐рдб рдШрдЯрдХ direction="RTL" рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╕реВрдЪрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реЛрдВрдЧреА (рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХреЗрд╡рд▓ рдПрдХ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд▓реЗрдЖрдЙрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗ)ред рдпрд╣ рдЯреНрд░реЗрдбрдСрдл рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдЯрд╛ рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред


onItemsRendered рдФрд░ onScroll рдХреЙрд▓рдмреИрдХ рдкрд░рд┐рд╡рд░реНрддрди

рд╕реВрдЪреА рдФрд░ рдЧреНрд░рд┐рдб рдШрдЯрдХ рд╡рд░реНрддрдорд╛рди рдореЗрдВ onItemsRendered рдФрд░ onScroll рдХреЙрд▓рдмреИрдХ рд╕рд╣рд╛рд░рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдЗрди рдХреЙрд▓рдмреИрдХ рдХреЛ рдкреНрд░рддрд┐рдмрджреНрдз рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди (рд╕реВрдЪреА рдпрд╛ рдЧреНрд░рд┐рдб рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрди рдХреЙрд▓рдмреИрдХ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╕рд╛рдЗрдб рдЗрдлрд╝реЗрдХреНрдЯ (рдЬреИрд╕реЗ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рд▓реЙрдЧрд┐рдВрдЧ) рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рднреА рд╣реИ: рдХреЛрдИ рднреА рд╕реНрдХреНрд░реЙрд▓ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдЕрдкрдбреЗрдЯ рдПрдХ рд╕реЗрдХрдВрдб рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ("рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ") ред

рд╕рдВрд╕реНрдХрд░рдг 2 рдЗрд╕рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП onScroll рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдЧрд╛ред рдШрдЯрдирд╛ рдХреЗ рдкреНрд░реЗрд╖рдг рдЪрдХреНрд░ рдХреЗ рджреМрд░рд╛рди onScroll рдХреЙрд▓рдмреИрдХ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рддрд╛рдХрд┐ рдХрд┐рд╕реА рднреА рдЕрдкрдбреЗрдЯ рдХреЛ рд╕реВрдЪреА рдпрд╛ рдЧреНрд░рд┐рдб рдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдмреИрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

onItemsRendered рдХреЙрд▓рдмреИрдХ рдХреЛ onItemsDisplayed рдкреНрд░реЛрдк рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ , рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдкреНрд░рддрд┐рдмрджреНрдз рдЪрдХреНрд░ рдХреЗ рджреМрд░рд╛рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд░рд╣реЗрдЧрд╛ред рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рд╕реВрдЪреА рдШрдЯрдХ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкрд░ рдкреВрд░реНрд╡-рдкреНрд░рддрд┐рдкрд╛рджрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЖрдХреНрд░рд╛рдордХ рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рд▓реЙрдХрд┐рдВрдЧ рдЬреИрд╕реЗ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред


рдЕрдиреНрдп рд░рдВрдЧрдордВрдЪ рдХреА рд╕рд╛рдордЧреНрд░реА / рдкрд░рд┐рд╡рд░реНрддрди

рдХрдИ рд▓рдВрдмрд┐рдд рдЕрд╡рдХреНрд╖реЗрдкрдг (DEV рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде) рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

  • рд╕рднреА рд╕реВрдЪреА рдФрд░ рдЧреНрд░рд┐рдб рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП innerTagName рдФрд░ outerTagName ред (рдЗрд╕рдХреЗ рдмрдЬрд╛рдп innerElementType рдФрд░ outerElementType рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред)
  • рдЧреНрд░рд┐рдб рдШрдЯрдХ рдХреЗ рд▓рд┐рдП overscanCount , overscanColumnsCount , рдФрд░ overscanRowsCount ред (рдЗрд╕рдХреЗ рдмрдЬрд╛рдп overscanColumnCount рдФрд░ overscanRowCount рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред)
  • рдбрд╛рдпрдирд╛рдорд┐рдХ рдУрд╡рд░рд╕реНрдХреИрдирд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдкрдХреНрд╖ рдореЗрдВ overscanCount рдХреЛ рд╕реВрдЪреА рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  • direction рд▓рд┐рдП "рдХреНрд╖реИрддрд┐рдЬ" рдФрд░ "рдКрд░реНрдзреНрд╡рд╛рдзрд░" рдорд╛рдиред (рдЗрдиреНрд╣реЗрдВ layout рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг 2 рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)
  • itemData рдкреНрд░реЛрдк (рдФрд░ рдЗрд╕реА data рдкреНрд░реЛрдк рдЖрдЗрдЯрдо рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд) рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд░реЗрдВрдбрд░ рдкреНрд░реЛрдк рдПрдкреАрдЖрдИ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдЕрдм рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВред
  • useIsScrolling рдкреНрд░реЛрдк (рдФрд░ рдЗрд╕реА isScrolling рдкреНрд░реЛрдк рдХреЛ рдЖрдЗрдЯрдо рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛) рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реА-рд░реЗрдВрдбрд░рд┐рдВрдЧ рдФрд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рд▓реЙрдХрд┐рдВрдЧ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдорд╣рдВрдЧрд╛ рдмрдирд╛ рджреЗрдЧрд╛ред
  • рд╕реНрдХреНрд░реЙрд▓ рд╕рдВрд░реЗрдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдереЛрдбрд╝рд╛ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рдкрд╣рд▓реЗ рдирд╛рдорд┐рдд "рдСрдЯреЛ" рдЕрдм "рдиреНрдпреВрдирддрдо" рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдирдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди "рд╕реНрдорд╛рд░реНрдЯ" ("рдСрдЯреЛ" рдХреЗ рдмрдЬрд╛рдп) рд╣реЛрдЧрд╛ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрдкрд░реНрдпреБрдХреНрдд рдХреБрдЫ рдкреНрд░реЙрдкреНрд╕ рдЕрднреА рднреА рдЕрдиреНрдп рдирд┐рдпреЛрдЬрд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП рд╡реИрд╕реЗ рднреА рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

ЁЯСЛ help wanted ЁЯТм discussion

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдХреНрд╖реИрддрд┐рдЬ рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдЙрдиреНрд╣реЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдХреА рддрд░рд╣ рдЕрдирдВрдд рд╕реНрдХреНрд░реЙрд▓ рд╣рд┐рдВрдбреЛрд▓рд╛ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореЛрдмрд╛рдЗрд▓ рдкрд░ IMO рдХреА рдмрд╛рдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рд╕рднреА 44 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдХреНрд╖реИрддрд┐рдЬ рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдЙрдиреНрд╣реЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдХреА рддрд░рд╣ рдЕрдирдВрдд рд╕реНрдХреНрд░реЙрд▓ рд╣рд┐рдВрдбреЛрд▓рд╛ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореЛрдмрд╛рдЗрд▓ рдкрд░ IMO рдХреА рдмрд╛рдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @istarkovред рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдХреНрд╖реИрддрд┐рдЬ рд╡рд┐рдВрдбреЛрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП _any_ рд╡реИрдз рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдмрд╣реБрдд рдХрдо рдЖрдо рд╣реИрдВред (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╣рд┐рдВрдбреЛрд▓рд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдИ рд▓реЛрдЧ рдмрд╛рдПрдВ / рджрд╛рдПрдВ рддреАрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ "рд╕реНрдХреНрд░реЙрд▓" рдЗрд╡реЗрдВрдЯ рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рдВрдбреЛрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред) рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ v2 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрднреА рднреА рдмреЗрд╣рддрд░ рдорд╛рд░реНрдЧ (рдореЗрд░реЗ рд▓рд┐рдП) рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ, рдбрд╛рдпрдирд╛рдорд┐рдХ рд╕рд╛рдЗрдЬрд╝рд┐рдВрдЧ рдЖрджрд┐ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдБред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рджреБрдмрд▓реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВ рдЬреЛ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рд░рд▓, рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдФрд░ рд╕рд░рд▓ рдХреЛрдб рд╣реЛрдЧрд╛ред

рдорд╣рд╛рдиред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЪрд░ рдЖрдХрд╛рд░ рд╕реВрдЪреА рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЪрд┐рдВрддрд╛рдПрдВ рд╣реИрдВред рдЖрдк рдбрд╛рдпрдирд╛рдорд┐рдХрд▓рд┐рд╕реНрдЯ рдХреЗ рд╕рд╛рде рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдЖрдХрд╛рд░ рдХреА рд╕реВрдЪреА рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдЬрд┐рд╕реЗ рдЖрдк рдЖрдЗрдЯрдо рдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХреБрдЫ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдРрд╕реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕рдордп рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдЦрд┐рдбрд╝рдХреА рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреА рд╣реИред
рджреВрд╕рд░рд╛ рдореБрджреНрджрд╛ рдЬреЛ рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рди, рдЕрдЧрд░ рдЖрдк рдбрд╛рдпрдирд╛рдорд┐рдХ рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рд╡реИрд╕рд╛ рд╣реА рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ рдЪрд░ рдЖрдХрд╛рд░ рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЫреЛрдбрд╝рдирд╛ рдареАрдХ рд╣реЛрдЧрд╛ рднрд▓реЗ рд╣реА рдЖрдк рд╕реНрдХреНрд░реЙрд▓рдЯрд╛рдЗрдЯрдо рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЬреАрдм рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдЬрд╣рд╛рдВ рдбрд╛рдпрдирд╛рдорд┐рдХ рд╕реВрдЪреА рдзреАрдореА рд╣реИ рдФрд░ рдЖрдЗрдЯрдо рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрдХреНрд░реЙрд▓ рдирд╣реАрдВ рд╣реИ, рд╕реВрдЪреА рдореЗрдВ рдХреЗрд╡рд▓ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдЗрдЯрдо рдКрдВрдЪрд╛рдИ рд╣реИред

рдЖрдк рдбрд╛рдпрдирд╛рдорд┐рдХрд▓рд┐рд╕реНрдЯ рдХреЗ рд╕рд╛рде рдЪрд░ рдЖрдХрд╛рд░ рд╕реВрдЪреА рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдбрд╛рдпрдирд╛рдорд┐рдХ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдЬрд┐рд╕реЗ рдЖрдк рдЖрдЗрдЯрдо рдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реАрдорд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ рдХрд┐ рдореИрдВ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдореБрдЭреЗ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рд╕рдордп рдорд┐рд▓реЗрдЧрд╛

рджреВрд╕рд░рд╛ рдореБрджреНрджрд╛ рдЬреЛ рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рди, рдЕрдЧрд░ рдЖрдк рдбрд╛рдпрдирд╛рдорд┐рдХ рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рд╡реИрд╕рд╛ рд╣реА рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ рдЪрд░ рдЖрдХрд╛рд░ рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЫреЛрдбрд╝рдирд╛ рдареАрдХ рд╣реЛрдЧрд╛ рднрд▓реЗ рд╣реА рдЖрдк рд╕реНрдХреНрд░реЙрд▓рдЯрд╛рдЗрдЯрдо рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЬреАрдм рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдЬрд╣рд╛рдВ рдбрд╛рдпрдирд╛рдорд┐рдХ рд╕реВрдЪреА рдзреАрдореА рд╣реИ рдФрд░ рдЖрдЗрдЯрдо рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрдХреНрд░реЙрд▓ рдирд╣реАрдВ рд╣реИ, рд╕реВрдЪреА рдореЗрдВ рдХреЗрд╡рд▓ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдЗрдЯрдо рдКрдВрдЪрд╛рдИ рд╣реИред

рдХрд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдЧрд╛ред рдЧрддрд┐рд╢реАрд▓ рд╕реВрдЪреА рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╢рд╛рдпрдж рдЕрдВрддрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрдЧрд╛, рд╢рд╛рдпрдж рдирд╣реАрдВред рдореИрдВ рдХреБрдЫ рдРрд╕реА рдЪреАрдЬреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреБрдВрдЬрд╛рдЗрд╢ рдХрд╛рдЯрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдпрджрд┐ рдЖрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╕реВрдЪреА рд╕реЗ рдЦреБрд╢ рд╣реИрдВ, рддреЛ v2 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рднреА рд╕рдордп)ред

@bvaughn рдпрд╣ рдореБрдЭреЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рд╣реИ!
рдХреНрдпрд╛ рдЖрдк рдкрд┐рдЫрд▓реА рдЧрд░реНрдорд┐рдпреЛрдВ рд╕реЗ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ? ;-)

рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рдиреЛрдЯ рдкрд░ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░реЗрдВрдбрд░ рдкреНрд░реЙрдкреНрд╕ рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдорд╛рдпрдиреЗ рд░рдЦрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдореИрдВ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВред

рдирд╣реАрдВ, рдореИрдВрдиреЗ рдЖрдЬ рд╕реБрдмрд╣ рд▓рд┐рдЦрд╛ рдерд╛ exhaust рдореИрдВ рдердХ рдЧрдпрд╛ рд╣реВрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░реЗрдВрдбрд░ рдкреНрд░реЙрдкреНрд╕ рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдорд╛рдпрдиреЗ рд░рдЦрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдореИрдВ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВред

рдХреНрдпрд╛ рдЖрдк рд╡рд┐рд╕реНрддреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдкреНрд░рд╢рдВрд╕рдХ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИрдВ?

рдХреНрдпрд╛ рдХреНрд╖реИрддрд┐рдЬ рд╕реВрдЪреА / рдЧреНрд░рд┐рдб рд╕рдорд░реНрдерди AutoSizer (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреНрдб-рдСрдЯреЛ-рд╕рд┐рдЬрд╝рд░) рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдХреНрд╖реИрддрд┐рдЬ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреНрдб рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╡рд┐рдВрдбреЛ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╡рд┐рдВрдбреЛ рдПрдкреАрдЖрдИ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдкрд╛рдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд░рд▓ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЖрд╢рд╛рдУрдВ рдореЗрдВ рд╡рдВрдЪрд┐рдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЧреНрд░рд┐рдб рд╕рдорд░реНрдерди рдЕрднреА рднреА рдпреЛрдЬрдирд╛рдмрджреНрдз рд╣реИред рдХреНрд╖реИрддрд┐рдЬ рд╕рдорд░реНрдерди рдореЗрдВ рдСрдкреНрдЯ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕рд╕реЗ рдХреЛрдИ рдорддрд▓рдм рд╣реЛрдЧрд╛ред

@bvaughn рдореИрдВ рдЖрдо рддреМрд░ рдкрд░ рд░реЗрдВрдбрд░ рдкреНрд░реЙрдкреНрд╕ рдХрд╛ рдЖрдирдВрдж

рдХреНрдпрд╛ рдЖрдк рдЪрд┐рдирд╛рдИ рдЧреНрд░рд┐рдб рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@nikitapilgrim рдирд╣реАрдВред рдореИрдВ рдХреЗрд╡рд▓ Masonry react-virtualized рд╕реЗ рджреВрдВрдЧрд╛

https://github.com/bvaughn/react-virtualized/blob/master/docs/Masryryd.d

рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреНрдб рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдХрд╛рдо?

@ рдорд┐рдиреАрддрдкрд┐рд▓рдЧреНрд░реАрдо рдпрдк ред ЁЯСН
рд░рд┐рдПрдХреНрдЯ-рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреНрдб рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╡рд┐рдВрдбреЛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдкреИрдХреЗрдЬ рдХреЛ рдЫреЛрдЯрд╛ рдФрд░ рддреЗрдЬ рдмрдирд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдЦрд┐рдбрд╝рдХреА рдХрд╛ рджрд╛рдпрд░рд╛ рдмрд╣реБрдд рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИред ЁЯШЙ

рдпрджрд┐ рдЖрдкрдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреНрдб рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рд░рд╣реЗрдВ - рдпрд╣ рдЕрднреА рднреА рдПрдХ рдорд╣рд╛рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ!

рдореИрдВрдиреЗ react-window рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕ react-virtualized babel 7 рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ рдвреВрдВрдв рд░рд╣рд╛ рдерд╛ред рдореИрдВ react-virtualized Masonry рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди babel рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдм рдФрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреНрдб рдХреЗ рд╕рд╛рде рдореБрджреНрджреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИред

рд╕рд╣рдордд @bvaughnред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдФрд░ @babangsund рдКрдкрд░ рд╣реИ рдХрд┐ рдПрдХ @nikitapilgrim рдХрд╛ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ Masonry рдШрдЯрдХ рдореЗрдВ рдкреЗрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ react-window рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдмрджрд▓реЗ react-virtualized ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╡реАрдирддрдо [email protected] рдФрд░ [email protected] (рдЬреИрд╕реЗ create-react-app ) рдХреЗ рд╕рд╛рде рд╣реИ, рддреЛ react-virtualized рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдФрд░ рдЦрд░рдЧреЛрд╢ рдХреЗ рдЫреЗрдж рдХреЗ рдиреАрдЪреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИред
┬п \ _ (уГД) _ / уГД

рд╣реЗ рдореИрдВ рдЧрддрд┐рд╢реАрд▓ рдЖрдХрд╛рд░ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрд╣рд╛рдВ рдореИрдВ рд╕рдВрд╕реНрдХрд░рдг 2 рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╛ рдореБрдЭреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛?
image

рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реА рд╕реВрдЪреА рдЪрд░ рдЖрдХрд╛рд░ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рджрд┐рдЦ рд░рд╣реА рд╣реИ

рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд░реНрдерди рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред рдХреГрдкрдпрд╛ рд╡рд┐рд╖рдп рдкрд░ рдЯрд┐рдкреНрдкрдгреА рд░рдЦреЗрдВред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рд╣реИ

рдореИрдВ рдЯреНрд░реЗрд▓реЛ рдЬреИрд╕реЗ рдЙрддреНрдкрд╛рдж рдкрд░ react-window рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣рд╛рдВ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рджрд┐рдП рдЧрдП рд╣реИрдВ:

рд░реЗрдВрдбрд░ рдкреНрд░реЙрдкреНрд╕

рдпрд╣ рд╕рд╛рджрдЧреА рдХреЗ рдХрд╛рд░рдг рдПрдХ рдЕрдЪреНрдЫрд╛ рдмрджрд▓рд╛рд╡ рдФрд░ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдирдХрд╛рд░рд╛рддреНрдордХрддрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдкреАрдЖрдИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХреЗ рдлреНрд▓реИрдЯрд▓рд┐рд╕реНрдЯ рдХреЗ рд╕рдорд╛рди рд╣реЛрдЧрд╛ред рдореБрдЭреЗ https://github.com/bvaughn/react-window/issues/85 рдкрд░ рдЪрд░реНрдЪрд╛ рдкрдврд╝рдирд╛ рдпрд╛рдж рд╣реИ

рдХрдо рдШрдЯрдХ
рдХреЛрдИ рдФрд░ рдЕрдзрд┐рдХ рдХреНрд╖реИрддрд┐рдЬ рд╕реВрдЪреА рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ

рдореИрдВ horizontal рд╕рдорд░реНрдерди рдФрд░ VariableSizeList рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЕрддреНрдпрдзрд┐рдХ рд╡реЛрдЯ рдХрд░рддрд╛ рд╣реВрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпреЗ рдореБрдЦреНрдп рджреЛ рд╣реИрдВ рдЬреЛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдЙрдирдХрд╛ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдмреЛрдЭ рд╣реИ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдИ рдордЬрдмреВрдд рд░рд╛рдп рдирд╣реАрдВ рд╣реИред overscanCount рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдореБрдЭреЗ рдереЛрдбрд╝реА рдЪрд┐рдВрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЕрднреА рддрдХ рдХрд╕реНрдЯрдо рдореВрд▓реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╢рд╛рдпрдж рдареАрдХ рд╣реИред

рдЕрд░реЗ @bvaughn! рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рдХрд╛рдо рдкрд░ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 2 рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣ рд░рд╣рд╛ рд╣реВрдВред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмреЙрд▓рдкрд╛рд░реНрдХ рд╣реИ рдЬрдм рдпрд╣ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдпреЛрдЬрдирд╛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рддрдХрдиреАрдХреА рдЛрдг рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред

рдХреНрдпрд╛ рд╣рд╛рд▓ рдХреЗ react-window рдФрд░ рдмрд╛рдж рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ WindowScroller рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ "рд╕рд░рд▓" рддрд░реАрдХрд╛ рд╣реИ?

рдпрджрд┐ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рддреЛ рдпрд╣ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг 2 рдХреА рдкрд░рд┐рдзрд┐ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрдЧрд╛? рдпрд╛ рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдореЗрд░рд╛ рд╕рдВрджрд░реНрдн рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реЗ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдПрдХ рдкрд╛рдж рд▓реЗрдЦ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдФрд░ DynamicSizeList рдЬреИрд╕реЗ рдЖрдзреБрдирд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рджреВрд╕рд░рд╛ рд╕реНрдХреНрд░реЙрд▓ рдмрд╛рд░ (рдкреЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдПрдХ) рдкреЗрд╢ рдХрд░реЗрдЧрд╛

рдмрдврд╝рд┐рдпрд╛ рдкреИрдХреЗрдЬред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рдКрдВрдЪрд╛рдИ рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рдмреЗрд╕рдмреНрд░реА рд╕реЗ рдЗрдВрддрдЬрд╛рд░ - рдлрд┐рд▓рд╣рд╛рд▓ рдореИрдВрдиреЗ рдЕрднрд┐рднрд╛рд╡рдХ рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рд░реЗрдВрдбрд░ рд╣рд╛рдЗрдЯреНрд╕ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рддрд░реНрдХ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд▓рд┐рдЦрд╛ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдореИрдВ рдЙрд╕ рддрд░реНрдХ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдЗрд╕ рдкрд░ рдЖрдкрдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

@ltkn @mrdanimal

рд╡рд┐рдВрдбреЛ рд╕реНрдХреНрд░реЛрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реИ:
https://github.com/bvaughn/react-window/issues/30#issuecomment -428868071

рд╕реНрдХреНрд░реЙрд▓ рдХреЛ рдХреИрд╕реЗ рдХрд░реЗрдВ рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдЕрдирдВрдд, рдмрд╛рдПрдВ рдпрд╛ рджрд╛рдПрдВ !!!

рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ WindowScroller рдмрд┐рдирд╛ react-virtualized рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдХреНрдпреЛрдВрдХрд┐ рдкреАрдЫреЗ рд▓рдХреНрд╖реНрдп react-window рдпрд╣ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡реА рдФрд░ рдХрдо рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрдирд╛рдпрд╛ react-virtualized рддреЛ, рдореИрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ WindowScroller рд╕реЗ react-virtualized ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп react-virtualized-auto-sizer рдЬреИрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИрдВред

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред

@ рдкреНрд░рднрд╛рд╕рдорд╡реЗрд▓ рд╣реНрдо редред
рдПрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдХрд╛ рдХреНрдпрд╛ рдлрд╛рдпрджрд╛ рд╣реИ?

рдирдП рдбрд╛рдпрдиреЗрдорд┐рдХрд╕рд╛рдЗрдЬрд╝рд▓рд┐рд╕реНрдЯ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд░рд╣рд╛ рд╣реИред рдмрд╣реБрдд рд╣реА рд╢рд╛рдВрдд! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 'рдЯреАрдЯреАрдмреА' рдФрд░ 'рдмреАрдЯреАрдЯреА' (рдЯреЙрдк-рдЯреВ-рдмреЙрдЯрдо, рдмреЙрдЯрдо-рдЯреВ-рдЯреЙрдк) рдХреЛ рдбрд╛рдпрд░реЗрдХреНрд╢рди рдЯрд╛рдЗрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ рд╣реЛрдЧреАред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реВрдЪреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рд╛рдл рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдКрдкрд░ рдХреА рдУрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд░ рджреВрд╕рд░реА рджрд┐рд╢рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@toddmacintyre рдореИрдВ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг 2 рдирд╣реАрдВ рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рджреЗ рд╕рдХрддрд╛ рд╣реИ?

@ рдордореБрд╣рдореНрдореЗрджрдЧрджреА npm install react-window@next

рдпрд╣ рд╢рд╛рдирджрд╛рд░ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╕рдВрд╕реНрдХрд░рдг 2 рдпрд╣рд╛рдВ рдпреБрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдбреЛрдо рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реИ - https://www.w3.org/TR/wai-aria-1.1/#grid # 217 рдХреЗ рд░реВрдк рдореЗрдВ рдЕрднреА рднреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рд╣реИред рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рд╕рдВрд╕реНрдХрд░рдг 2 рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдБ рдЕрднреА рдирд╣реАрдВред

@mjurkowski @bvaughn yarn add react-window@next 1.6.0-alpha.1 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдбрд╛рдпрдирд╛рдорд┐рдХ рд╕реВрдЪреА рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдЙрджрд╛рд╣рд░рдг https://react-window-next.now/sh/#/examples/list/dynamic -size рдпрд╣ Error importing GitHub repository: Could not find package.json рдлреЗрдВрдХрддрд╛ рд╣реИ

рдХреИрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ index рдЧреНрд░рд┐рдб рдореЗрдВ рднреА рдЧреБрдЬрд░ рд░рд╣рд╛ рд╣реИ - рдЬрдмрдХрд┐ рдпрд╣ ?:

рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЪрд░ рдЪреМрдбрд╝рд╛рдИ рд╡рд╛рд▓реЗ рдХреЙрд▓рдо рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде рдЧреНрд░рд┐рдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдордиреЗ рдПрдХ рдХреНрд╖реИрддрд┐рдЬ рдЪрд░ рдЖрдХрд╛рд░ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЧреНрд░рд┐рдб рдХреЗ рд╕рд╛рде рдпреБрдЧреНрдорд┐рдд рдФрд░ рджреЛ рдХреА рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдХреЗ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рд╣реИред

рдХреНрд╖реИрддрд┐рдЬ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рд╣рдо рдЙрд╕ UI рдХреЛ рдмрдирд╛рдиреЗ рд╕реЗ рд░реЛрдХреЗрдВрдЧреЗ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╣рдореЗрдВ рдЗрд╕реЗ 2 рдЧреНрд░рд┐рдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рдХреЙрд▓рдо рд╣реЗрдбрд░ рдЧреНрд░рд┐рдб рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИред

рдЕрдЧрд▓рд╛ рдЙрддреНрдкрд╛рдж рдЕрджреНрднреБрдд рд▓рдЧ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рджреЛрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП FYI рдХрд░реЗрдВ рдореИрдВрдиреЗ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдмрдирд╛рдпрд╛: https://www.npmjs.com/package/react-infinite-grid-scrollerред рдЧреНрд░рд┐рдб рд▓реЗрдЖрдЙрдЯ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реБрдХ, IntersectionObserver, рдФрд░ requestIdleCallback рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЪрд┐рдкрдЪрд┐рдкрд╛ рддрддреНрд╡реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдЦрд┐рдбрд╝рдХреА рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдврд╝рд┐рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрдЧрд╛ред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдФрд░ рд╕реВрдЪреА рдФрд░ рдЧреНрд░рд┐рдб рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдЖрдЧреЗ рд╣реЛрдЧрд╛ред

рдПрдкреАрдЖрдИ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

<Grid
    // First 2 columns are sticky
    stickyLeft={2}
    // Last column is not sticky (default value)
    stickyRight={0}
    // First and last rows are sticky
    stickyTop={1}
    stickyBottom={1}
/>

рдЪрд┐рдкрдЪрд┐рдкрд╛рд╣рдЯ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдкреНрд░рдореБрдЦ рддрддреНрд╡ рд╣реИрдВ:

  1. рдХреЗрд╡рд▓ рдЙрдиреНрдореБрдХреНрдд рдХреЛрд╢рд┐рдХрд╛рдПрдБ рдЬреЛ рдЪрд┐рдкрдЪрд┐рдкреА рд╣реИрдВ рдпрджрд┐ рд╡реЗ рдзреБрд░реА рдореЗрдВ рдЦрд┐рдбрд╝рдХреА рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВ рддреЛ рд╡реЗ рдЪрд┐рдкрдЪрд┐рдкреА рдирд╣реАрдВ рд╣реИрдВ
  2. position: sticky рдмрдЬрд╛рдп absolute рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ margin-x рдмрдЬрд╛рдп left рдФрд░ top рдЙрд╕ рдЕрдХреНрд╖ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВ рдЬреЛ рдЪрд┐рдкрдЪрд┐рдкрд╛ рдирд╣реАрдВ рд╣реИ

рдЗрддрдиреА рдмрдбрд╝реА рд╕реБрд╡рд┐рдзрд╛ рдХреА рд▓рд╛рдЧрдд рдЙрдЪрд┐рдд рд▓рдЧрддреА рд╣реИ:

  • рдкрджрдЪрд┐рд╣реНрди рдиреНрдпреВрдирддрдо рд╣реИ
  • рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдХреЛрдИ рдмрдбрд╝рд╛ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ (рдмрд╕ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрдВрдХреНрддрд┐рдпреЛрдВ / рд╕реНрддрдВрднреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди)
  • рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рд╕рдорд░реНрдерди рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ рдЬреЛ position: sticky рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦрддреЗ рд╣реИрдВ

рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ, рддреЛ рдПрдХ рдорд╣рд╛рди рд╕рдордЭреМрддрд╛ рдХреЗрд╡рд▓ рдмрд┐рдВрджреБ 1 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рд╕реЗрд▓ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рдЪрд┐рдкрдЪрд┐рдкрд╛рд╣рдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреАред

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдорд╛рдкрдиреЗ рдФрд░ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдбрд╛рдЙрди рд╕рд╛рдЗрдб рд╣реИред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рд▓рдЧрднрдЧ рд╣рд░ рдЧреНрд░рд┐рдб рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ 3 рдпрд╛ 4 рдирд┐рд╢реНрдЪрд┐рдд рдЪреМрдбрд╝рд╛рдИ рд╡рд╛рд▓реЗ рдХреЙрд▓рдо (рд╕реНрдЯреЗрдЯрд╕ рд▓реЗрдмрд▓ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдореЗрдЯрд╛ рдбреЗрдЯрд╛, рдПрдХреНрд╢рди рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдХреЙрд▓) рдФрд░ 1 рдбрд╛рдпрдиреЗрдорд┐рдХ рдЪреМрдбрд╝рд╛рдИ рдХреЙрд▓рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдмрд╛рдХреА рд╕реНрдкреЗрд╕ рдХреЛ рд▓реЗрддрд╛ рд╣реИред

рдореИрдВ рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ "рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ" рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдФрд░ рдШрдЯрдХреЛрдВ рдЬреИрд╕реЗ рдСрдЯреЛрд╕рд╛рдЗрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ - рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЙрди рдорд╛рдорд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рдП рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдЬреЛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИрдВ рдЬрд┐рдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдбрд╛рдпрдиреЗрдорд┐рдХ рдХреЙрд▓рдо рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рд╕рд╛рде рд▓рд╛рдП рдЧрдП рд╕рднреА рд╕рд╛рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯ-рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреНрдб рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ред

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЙрди рдорд╛рдорд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдорд╛рдзрд╛рди рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд╕реНрддрдВрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ

рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ- рд▓реЗрдХрд┐рди рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЬрд╛рдП рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рдиреАрдЪреЗ scoped v2 рдкреНрд░рдпрд╛рд╕реЛрдВ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдХреЗрд▓реЗ рдХреБрдЫ рднреА рдФрд░ рдЕрдзрд┐рдХ рдЖрдХреНрд░рд╛рдордХ рдЬрд╛рдиреЗ рд╕рдордп рдирд╣реАрдВ рдерд╛ред ЁЯШЮ

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЙрди рдорд╛рдорд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдорд╛рдзрд╛рди рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд╕реНрддрдВрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ

рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ- рд▓реЗрдХрд┐рди рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЬрд╛рдП рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА

рд╣рд╛рдВред рдореИрдВ рд╕рдордЭ рдЧрдпрд╛ред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХрд╛ рдиреЗрддреГрддреНрд╡ рд╕рдореБрджрд╛рдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛- рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рдРрд╕рд╛ рдХрднреА рдирд╣реАрдВ рд╣реЛрддрд╛: рдореБрд╕реНрдХрд╛рди:

рдореИрдВ рдбрд╛рдпрдиреЗрдорд┐рдХрд▓рд╛рдЗрдЬрд╝реНрдбрд▓рд┐рд╕реНрдЯ рдХреЗ рд╕рд╛рде WindowScroller рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд░рд╣рд╛ рд╣реВрдВ, рд╢рд╛рдпрдж рдЗрд╕реАрд▓рд┐рдП рдХрд┐ рд╕рдордп-рд╕рдордп рдкрд░ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рд╕реЗ рд╕реНрдХреНрд░реЙрд▓рдЯреЗрд▓ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛?

рдореИрдВрдиреЗ рдЗрд╕ рддрдереНрдп рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд░рдпрд╛рд╕ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдордп рдпрд╛ рдКрд░реНрдЬрд╛ рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рдХреЛрдИ рднреА рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХреА рдЧрдИ рд╢рд╛рдЦрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛, рддреЛ рдореИрдВ рдЖрдкрдХреА рдорджрдж рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддрд╛ рд╣реВрдБред (рдХреГрдкрдпрд╛ List рдФрд░ Grid рдкрд░ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ # 6 рднреА рджреЗрдЦреЗрдВ, рд╕рдордп-рд╕рдордп рдкрд░ рдорд╛рдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред)

рд╣рд╛рдп @ рдмреАрд╡реЙрди ,
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рдкрд░ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдиреЛрдЯреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд░реНрдЪрд╛ рдмрдирд╛рдИ рд╣реИред
рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЬреЛ рд╕рд╣реА рдирд╣реАрдВ рд╣реИред рдЬрдм рдореИрдВ рдкреНрд░рдЧрддрд┐ рдХрд░реВрдВрдЧрд╛ рддреЛ рд╕реВрдЪреА рдкреВрд░реА рдХрд░реВрдВрдЧрд╛ред

рдЕрдЪреНрдЫреА рдЪреАрдЬ рд▓рдЧрддреА рд╣реИ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

bitboxer picture bitboxer  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

maynir picture maynir  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jsu93 picture jsu93  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ShivamJoker picture ShivamJoker  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bnikom picture bnikom  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ