Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: implement new Tasks BigData example for useVirtualList usage #334

Draft
wants to merge 9 commits into
base: dev
Choose a base branch
from

Conversation

hrynevychroman
Copy link
Collaborator

This PR try to fix #296

So I add a new example where implemented virtualList based on vueuse core function.

I tried to use seperate package but it don't fit for table HTML at all because creating 2 div wrappers.

Please watch this video 👇 , or try by yourself, you will feel performance improvements at all

big-data-example.mp4

@sadeghbarati need help with this, what will be the best Doc for this, because if we are porting only original package, there is no BigData example at all 🙂

@sadeghbarati
Copy link
Collaborator

sadeghbarati commented Feb 13, 2024

Thanks, Man! @romanhrynevych

Will try to checkout to your branch to fully test it ❤️

Also, I think the issue you linked is related to DropdownMenu itself and its DropdownMenuItems
It might be related to this discussion is Discord Help and Question (Combobox or Dropdown Virtual List) but thanks anyway 😁


need help with this, what will be the best Doc for this, because if we are porting only original package, there is no BigData example at all

Can you explain more please 🙏

@hrynevychroman
Copy link
Collaborator Author

need help with this, what will be the best Doc for this, because if we are porting only original package, there is no BigData example at all

Can you explain more please 🙏

Don't think that this place on main page is great position for example, maybe you will move it to another place 😁❤️

@sadeghbarati
Copy link
Collaborator

sadeghbarati commented Feb 13, 2024

Don't think that this place on main page is great position for example, maybe you will move it to another place 😁❤️

I think it's better to replace it with the Original Task page let see what is Zernonia's opinion is

I think in data-table.md after column pinning example is good place

@hrynevychroman
Copy link
Collaborator Author

@zernonia can you take a look on this PR? What you think is the best place to show Tasks Example?

@zernonia
Copy link
Member

Thanks for the PR @romanhrynevych . I don't think we need to duplicate a whole other component just to showcase large dataset. Most of the component/utilities are the same and can be reuse from examples/tasks.

And let's create another path (https://www.shadcn-vue.com/docs/guide/rendering-large-data.html), and write some guide/steps to help other dev to use the virtualisation package instead of another demo.

I believe this way it will be more clear, and more helpful.

@hrynevychroman
Copy link
Collaborator Author

Ok, I will update this PR to your advice soon ❤️

@hrynevychroman
Copy link
Collaborator Author

@sadeghbarati hi 👋

I added new guide section, but don't know where to move examples/big-data folder, because it has custom logic for this type of tables only, maybe you will provide nice place for it ❤️

If it will be some more fixes feel free to provide them, i will fix all of them 😁

@sadeghbarati
Copy link
Collaborator

Thanks Roman will check

@hrynevychroman
Copy link
Collaborator Author

hrynevychroman commented Feb 21, 2024

@sadeghbarati just noticed that tanstack has his own virtualizer (noticed in this Radix-vue Issue your comment 😁 ) unovue/radix-vue#696 (comment), maybe here I will replace vueuse integration with tanstack table example?

Link: https://tanstack.com/virtual/latest/docs/framework/vue/examples/table

@sadeghbarati
Copy link
Collaborator

Feel free to switch to TanStack Virtual or add both?

@hrynevychroman
Copy link
Collaborator Author

thinking about switching to TanStack for more extended features in future 🤔

@sadeghbarati
Copy link
Collaborator

Yes TanStack for the Win

@maelp
Copy link

maelp commented Feb 23, 2024

I've found tanstack virtualized more difficult to use (and finnicky) than vue-use, but vue-use has less features

Coudln't really manage to make this work with a table without hitting display issues, so I ended up adding fixed-width to all cells and using a "list" with each row made of cells

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: DropdownMenu(Trigger) will be slow to display when there's a lot of render elements
4 participants