Aksiyonlar ve Hook'lar
Aksiyon bileşenleri (Button, IconButton, FAB, Card.onTap, ForEach.template.onTap …) bir kullanıcı etkileşimini host uygulamasına ileten action taşır. Bu sayfa action modelinin tam yapısını, command URN kullanımını ve preHooks/postHooks pipeline'ının davranış kurallarını anlatır.
Action: Kısa ve Genişletilmiş Form
Bir aksiyon iki şekilde yazılabilir:
Kısa form (string) — yalnızca verb iletilir:
{ "type": "Button", "label": { "tr": "İptal" }, "action": "cancel" }
Genişletilmiş form (object) — command, validation ve hook'lar eklenebilir:
{
"type": "Button",
"label": { "tr": "Kaydet", "en": "Save" },
"action": {
"action": "dispatch",
"command": "urn:vnext:flow:transition:demo:sample-flow:${param}:save",
"validate": true,
"preHooks": [{ "action": "audit", "command": "urn:client:audit:click", "sync": true }],
"postHooks": [{ "action": "telemetry", "command": "urn:client:telemetry:click" }]
}
}
| Alan | Tip | Açıklama |
|---|---|---|
action | string | Verb — aşağıdaki tabloya bakın |
command | string (URN) | İşlemi özelleştiren URN. Bkz. URN Kataloğu |
validate | boolean | Aksiyon öncesi form validasyonu yapılacağını işaretler (aşağıda) |
preHooks | array | Ana aksiyon öncesi çalışan hook'lar |
postHooks | array | Ana aksiyon sonrası çalışan hook'lar |
Verb'ler
| Verb | Host'a gider mi? | Açıklama |
|---|---|---|
submit | Evet | Formu gönderir ve command'daki transition'ı tetikler. Varsayılan olarak valide eder. |
dispatch | Evet | Genel amaçlı aksiyon gönderimi; command URN'i ile özelleştirilir. Validasyon opsiyoneldir (validate). |
select | Hayır | Yerel seçim (ör. ForEach içinde bind güncelleme). Host'a gitmez. |
reset | Evet | Sıfırlama aksiyonu; host'a gider. |
delegate | Evet | Delege aksiyonlar; arka planda submit ve reset kullanır. |
command değeri her zaman bir URN'dir ve urn:vnext (runtime tarafından çözülür) veya urn:client (client'ın local davranışı) prefiksini taşır. Format ve binding kuralları için bkz. URN Kataloğu ve Binding.
validate
validate, aksiyon tetiklenmeden önce formun validasyondan geçirileceğini işaretler:
submit→ varsayılan olarak valide eder (validateyazılmasa da).dispatch→ validasyon seçeneği sunar;validate: trueverilmedikçe valide etmez.
Validasyon başarısız olursa hiçbir aksiyon ve hiçbir hook tetiklenmez; hatalı alanlar işaretlenir.
preHooks ve postHooks
Hook'lar, ana aksiyonun çevresinde audit, telemetry gibi yan etkileri çalıştırmak için kullanılır. Her hook bir aksiyon nesnesidir:
| Alan | Tip | Açıklama |
|---|---|---|
action | string | Hook verb'i (ör. audit, telemetry) |
command | string (URN) | Hook'un çalıştıracağı URN |
sync | boolean | true ise senkron (sonucu ana akışı etkileyebilir); false/yazılmazsa asenkron |
submit, select, reset gibi rezerve verb'ler hook olarak reddedilir (warn log yazılır). Hook'lar yalnızca yan etki aksiyonları içindir.
Davranış Kuralları
preHooks/postHooks pipeline'ı aşağıdaki kurallarla çalışır:
| Durum | Davranış |
|---|---|
| Sync pre-hook reject | Ana aksiyon ve post-hook'lar atlanır + error log |
| Sync post-hook reject | Error log + kalan post-hook'lara devam edilir |
| Async hook reject | Warn log; ana akış bloklanmaz |
| Validation fail | Hiçbir hook tetiklenmez |
select verb | Hook'lar skip edilir (host'a hiç gitmez) |
reset verb | Hook'lar çalıştırılır (host'a gider) |
| Reserved verb hook | Reddedilir + warn log |
| Pipeline hatası | Pipeline asla throw etmez — last-ditch try/catch + error log |
İlgili
- URN Kataloğu ve Binding —
commandURN formatları ve${param}binding - Tasarımcı Rehberi → Eylem Düğmeleri — buton ve
actiontemelleri - View Yapısı → Aksiyon Bileşenleri —
Button,IconButton,FAB - Data Akışı —
selectveonTapile yerel veri güncelleme