Architecture
The component system follows a provider-consumer pattern:<VueList>- The root component that manages all state and provides it to child components- Child components - Consume the state via Vue’s
injectAPI and render UI based on that state
Component categories
Core components
VueList
Root component that manages list state and API calls
VueListItems
Renders the list items with customizable slots
Navigation components
VueListPagination
Page-based navigation with customizable page links
VueListLoadMore
Infinite scroll with a load more button
VueListGoTo
Dropdown to jump to a specific page
Control components
VueListSearch
Search input with debouncing
VueListPerPage
Select how many items to show per page
VueListRefresh
Button to refresh the current data
VueListAttributes
Toggle visibility of table columns
Status components
VueListLoader
Shows loading state during data fetches
VueListInitialLoader
Shows loading state on first load only
VueListError
Displays API errors
VueListEmpty
Shows message when no items exist
VueListSummary
Displays count summary (showing X-Y of Z)
Basic example
Key principles
1. Headless by design
Components don’t render any styled UI by default. They provide default slots that you can override with your own markup and styling.2. Use only what you need
You don’t have to use every component. Pick the ones that match your UI requirements.3. Full styling control
Wrap components in your own elements, use Tailwind, Bootstrap, or any CSS framework. The components add minimal wrapper divs with class names for targeting.4. Automatic state injection
Child components automatically access list state via Vue’s provide/inject. No manual prop passing required.State injection
The<VueList> component provides these values to all child components:
items- Array of data itemscount- Total count from APIisLoading- Current loading stateisInitialLoading- True only on first loaderror- Error object if request failedlocalPage- Current page numberlocalPerPage- Items per pagelocalSearch- Current search querylocalSortBy- Current sort columnlocalSortOrder- Current sort direction- Methods:
setPage,setPerPage,setSearch,setSort,refresh,loadMore
Next steps
VueList component
Learn about the root component and its props
Custom styling guide
See examples of styling components