Snippets
Snippets de código reutilizáveis com tabs para diferentes stacks frontend.
Form de Validação
vue
<Form
action="/users"
method="post"
#default="{ errors, invalid, valid, validate }"
>
<input name="email" @change="validate('email')" />
<p v-if="valid('email')">Endereço de email válido</p>
<p v-if="invalid('email')">{{ errors.email }}</p>
</Form>tsx
<Form action="/users" method="post">
{({ errors, invalid, valid, validate }) => (
<>
<input name="email" onChange={() => validate('email')} />
{valid('email') && <p>Endereço de email válido</p>}
{invalid('email') && <p>{errors.email}</p>}
</>
)}
</Form>svelte
<Form action="/users" method="post" let:errors let:invalid let:valid let:validate>
<input name="email" on:change={() => validate('email')} />
{#if valid('email')}<p>Endereço de email válido</p>{/if}
{#if invalid('email')}<p>{errors.email}</p>{/if}
</Form>Criar Utilizador Com Laravel + Inertia + Vue
php
use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;
Route::get('/users/create', [UserController::class, 'create'])
->name('users.create');
Route::post('/users', [UserController::class, 'store'])
->name('users.store');php
use App\Models\User;
use Illuminate\Http\Request;
use Inertia\Inertia;
public function create()
{
return Inertia::render('Users/Create');
}
public function store(Request $request)
{
$data = $request->validate([
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'email', 'unique:users,email'],
]);
User::create($data);
return redirect()->route('users.index');
}vue
<script setup>
import { useForm } from '@inertiajs/vue3'
const form = useForm({
name: '',
email: '',
})
const submit = () => form.post('/users')
</script>
<template>
<form @submit.prevent="submit">
<input v-model="form.name" type="text" name="name" />
<p v-if="form.errors.name">{{ form.errors.name }}</p>
<input v-model="form.email" type="email" name="email" />
<p v-if="form.errors.email">{{ form.errors.email }}</p>
<button type="submit" :disabled="form.processing">
Criar utilizador
</button>
</form>
</template>Como Adicionar Mais
Usa a sintaxe nativa do VitePress:
md
::: code-group
```php [Laravel]
// Código aqui
```
```vue [Vue]
<!-- Código aqui -->
```
:::