Giter VIP home page Giter VIP logo

Comments (3)

ehzhang avatar ehzhang commented on August 20, 2024

@matrinox could you clarify what you mean by this, and what performance costs you observe?

from fixed-data-table.

matrinox avatar matrinox commented on August 20, 2024

@ehzhang This is what you need to do to reproduce:

  1. Render component with
<Table
  rowGetter={@rowGetter}
  
  />
  1. in rowGetter function, log the rowIndex/first param: console.log(rowIndex)
  2. scroll to the top of the list and then keep scrolling

Notice that the logs keep coming even though clearly no rows have changed. In fact, I feel like it shouldn't bother calling that method unless a new row is really needed, as opposed to just on ever scroll. Performance cost isn't that high but could be better. It should only call it once when the user scrolls 1 pixel past the next row, versus all of them again.

from fixed-data-table.

ehzhang avatar ehzhang commented on August 20, 2024

Hmm! I just checked it out, and it looks like you're right - there are duplicate calls to the rowGetter function. However, if you add logs to a cellRenderer function, you'll notice that the cells themselves don't actually re-render.

The performance of the rowGetter is negligible, as the real bottleneck here is rendering. I've decided to close this issue as it is more of a micro-optimization.

from fixed-data-table.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.