Theoretical/Performance Question
Let's say I have a livewire component that's a list of items. The list has a foreach loop that iterates through livewire component items in the list.
So something like this:
In the above scenario, which is generally going to be the most performant?
1) Pass in the ID of the item and query the database within the item component to get any add'l fields.
2) Pass in the entire $item. This would mean you're passing a much larger object, but you're not querying the database for each item.
3) Query once in the outer list component and pass in an array of only the necessary data elements to each item?
I was doing #2 and having performance issues, so I moved to #1, also performance issues. I've also tried passing in each individual field that's needed, which is generally better performance-wise, but if I need almost all the fields on the object, then I'm passing in a ton of fields.
How do you guys generally handle these types of challenges? Hitting some walls performance-wise with Filament and I feel confident it's my own lack of skills and not the framework itself.
Solution:Jump to solution
Definitely 3. Otherwise you’re going to have n+1 issues. But I say that not knowing the functionality of the repeated component.
2 Replies