Setup
// Laravel Controller
public function index()
{
return Inertia::render('Dashboard', [
'users' => User::all()
]);
}
Vue 3 Component
<script setup>
import { ref, computed } from 'vue'
import { usePage } from '@inertiajs/vue3'
const { users } = usePage().props
const search = ref('')
const filtered = computed(() =>
users.filter(u => u.name.includes(search.value))
)
</script>
TypeScript + Pinia make this stack production-ready.