aaix / laravel-islands-datagrid
A server-driven data table for Laravel Islands: one composable and one shell for fetching, sorting, filtering and paginating, so every table in an application shares the same foundation.
Package info
github.com/jonaaix/laravel-islands-datagrid
Language:Vue
pkg:composer/aaix/laravel-islands-datagrid
Requires
- php: >=8.3
- illuminate/support: ^12.0|^13.0
README
Laravel Islands DataGrid
Server-driven data tables for Laravel Islands. One composable for state, one shell for chrome — every table shares the same foundation instead of copying it.
Framework-agnostic core with a Vue adapter today. useDataTable owns the state — fetching, sorting, filtering, pagination, debounced search, query-string sync. <DataTable> owns the chrome — toolbar, header, skeleton, empty state, pagination. Columns and rows stay in your island, where they belong.
composer require aaix/laravel-islands-datagrid
<script setup> import { DataTable, useDataTable } from '@aaix/laravel-islands-datagrid/vue'; const { rows, meta, state, loading, error, goToPage, setPerPage, reload, fetchData } = useDataTable('/api/products', { defaults: { q: '', sort: 'created_at', dir: 'desc', page: 1, perPage: 30 }, }); onMounted(() => fetchData()); </script> <template> <DataTable :rows="rows" :meta="meta" :per-page="state.perPage" :col-count="3" :loading="loading" :error="error" @retry="reload()" @page-change="goToPage" @per-page-change="setPerPage" > <template #head> <th>SKU</th> <th>Name</th> <th>Created</th> </template> </DataTable> </template>
Documentation
Full guide and API reference: jonaaix.github.io/laravel-islands-datagrid