İnceKit yeni nesil uygulama çerçeveleri dediğim şeyin en sonuncusudur. Tabii ki, Next'in sonsuza dek yaptığı dosya tabanlı yönlendirme, dağıtım ve sunucu tarafı işleme ile sizin için bir uygulama iskelesi oluşturur. Ancak SvelteKit ayrıca iç içe yerleştirilmiş düzenleri, sayfanızdaki verileri senkronize eden sunucu mutasyonlarını ve ele alacağımız diğer bazı incelikleri de destekler.
Bu gönderi, SvelteKit'i hiç kullanmamış herkes için biraz heyecan yaratmayı ummak için üst düzey bir giriş niteliğindedir. Rahat bir tur olacak. Gördüklerini beğenirsen, tüm dokümanlar burada.
Bazı yönlerden bu, yazması zor bir yazı. SvelteKit bir uygulama çerçevesi. Uygulamalar oluşturmanıza yardımcı olmak için var. Bu, demo yapmayı zorlaştırır. Tüm bir uygulamayı bir blog gönderisinde oluşturmak mümkün değildir. Bunun yerine biraz hayal gücümüzü kullanacağız. Bir uygulamanın iskeletini oluşturacağız, bazı boş UI yer tutucularımız ve sabit kodlanmış statik verilerimiz olacak. Amaç gerçek bir uygulama oluşturmak değil, bunun yerine size SvelteKit'in hareketli parçalarının nasıl çalıştığını göstermek, böylece kendi uygulamanızı oluşturabilirsiniz.
Bu amaçla, denenmiş ve gerçek Yapılacaklar uygulamasını örnek olarak oluşturacağız. Ancak endişelenmeyin, bu, başka bir Yapılacaklar uygulaması oluşturmaktan çok, SvelteKit'in nasıl çalıştığını görmekle ilgili olacak.
Bu gönderideki her şeyin kodu GitHub'da mevcut. Bu proje aynı zamanda Vercel'de dağıtılan canlı bir demo için.
Projenizi oluşturmak
Yeni bir SvelteKit projesi başlatmak yeterince basit. Koşmak npm create your-app-name
terminalde ve soru istemlerini yanıtlayın. "Skeleton Project"i seçtiğinizden emin olun, aksi takdirde TypeScript, ESLint, vb. için istediğiniz seçimleri yapın.
Proje oluşturulduktan sonra çalıştırın npm i
ve npm run dev
ve bir geliştirici sunucusu çalışmaya başlamalıdır. Ateşle localhost:5173
tarayıcıda ve iskelet uygulaması için yer tutucu sayfayı alırsınız.
Temel yönlendirme
Dikkat routes
altındaki klasör src
. Bu, tüm rotalarımız için kodu tutar. zaten var +page.svelte
kök için içerik içeren dosya /
güzergah. Dosya hiyerarşisinde nerede olursanız olun, o yol için gerçek sayfanın adı her zaman vardır. +page.svelte
. Bunu göz önünde bulundurarak, şu sayfalar oluşturalım: /list
, /details
, /admin/user-settings
ve admin/paid-status
ve ayrıca her sayfa için bazı metin yer tutucuları ekleyin.
Dosya düzeniniz şöyle görünmelidir:
Tarayıcı adres çubuğundaki URL yollarını değiştirerek gezinebilmelisiniz.
düzenleri
Uygulamamızda gezinti bağlantıları istiyoruz, ancak oluşturduğumuz her sayfada onlar için işaretlemeyi kesinlikle kopyalamak istemiyoruz. Öyleyse, bir tane oluşturalım +layout.svelte
dosyamızın kök dizininde routes
SvelteKit'in tüm sayfalar için genel bir şablon olarak ele alacağı klasör. Hadi ona biraz içerik ekleyelim:
<nav> <ul> <li> <a href="/tr/">Home</a> </li> <li> <a href="/tr/list">To-Do list</a> </li> <li> <a href="/tr/admin/paid-status">Account status</a> </li> <li> <a href="/tr/admin/user-settings">User settings</a> </li> </ul>
</nav> <slot /> <style> nav { background-color: beige; } nav ul { display: flex; } li { list-style: none; margin: 15px; } a { text-decoration: none; color: black; }
</style>
Bazı temel stillerle bazı ilkel gezinme. Özellikle önemli olan, <slot />
etiket. Bu değil web bileşenleri ve gölge DOM ile kullandığınız yuvadeğil, içeriğimizi nereye koyacağımızı gösteren bir Svelte özelliği. Bir sayfa oluşturulduğunda, sayfa içeriği yuvanın olduğu yere kayar.
Ve şimdi biraz navigasyonumuz var! Hiçbir tasarım yarışmasını kazanamayacağız ama kazanmaya da çalışmıyoruz.
İç içe düzenler
Tüm yönetici sayfalarımızın az önce oluşturduğumuz normal düzeni devralmasını ve aynı zamanda tüm yönetici sayfalarında (yalnızca yönetici sayfalarında) ortak olan bazı şeyleri paylaşmasını istesek ne olur? Sorun değil, bir tane daha ekliyoruz +layout.svelte
kökümüzdeki dosya admin
altındaki her şey tarafından miras alınacak dizin. Bunu yapalım ve bu içeriği ekleyelim:
<div>This is an admin page</div> <slot /> <style> div { padding: 15px; margin: 10px 0; background-color: red; color: white; }
</style>
Bunun bir yönetici sayfası olduğunu belirten kırmızı bir başlık ve daha önce olduğu gibi bir <slot />
sayfa içeriğimizin nereye gitmesini istediğimizi belirtir.
Oluşturmadan önceki kök düzenimiz. Kök düzeninin içinde bir <slot />
etiket. Yuvalanmış düzenin içeriği, kök düzenin içeriğine gider. <slot />
. Ve son olarak, iç içe geçmiş düzen kendi düzenini tanımlar. <slot />
, sayfa içeriğinin işlendiği yer.
Yönetici sayfalarına giderseniz, yeni kırmızı başlığı görmelisiniz:
Verilerimizi tanımlama
Tamam, bazı gerçek verileri işleyelim veya en azından bazı gerçek verileri nasıl işleyebileceğimizi görelim. Bir veritabanı oluşturmanın ve veritabanına bağlanmanın yüzlerce yolu vardır. Bu gönderi, DynamoDB'yi yönetmemekle birlikte SvelteKit ile ilgili olduğundan, bunun yerine bazı statik verileri "yükleyeceğiz". Ancak, onu okumak ve güncellemek için gerçek veriler için kullanacağınız tüm aynı makineleri kullanacağız. Gerçek bir web uygulaması için, kullandığınız veritabanına bağlanan ve sorgulayan işlevlerle statik veri döndüren işlevleri değiştirin.
Şimdi kir-basit bir modül oluşturalım. lib/data/todoData.ts
bu, gerçek sorguları simüle etmek için yapay gecikmelerle birlikte bazı statik veriler döndürür. bunu göreceksin lib
aracılığıyla başka bir yere aktarılan klasör $lib
. Bu, söz konusu klasör için bir SvelteKit özelliğidir ve hatta kendi takma adlarınızı ekleyin.
let todos = [ { id: 1, title: "Write SvelteKit intro blog post", assigned: "Adam", tags: [1] }, { id: 2, title: "Write SvelteKit advanced data loading blog post", assigned: "Adam", tags: [1] }, { id: 3, title: "Prepare RenderATL talk", assigned: "Adam", tags: [2] }, { id: 4, title: "Fix all SvelteKit bugs", assigned: "Rich", tags: [3] }, { id: 5, title: "Edit Adam's blog posts", assigned: "Geoff", tags: [4] },
]; let tags = [ { id: 1, name: "SvelteKit Content", color: "ded" }, { id: 2, name: "Conferences", color: "purple" }, { id: 3, name: "SvelteKit Development", color: "pink" }, { id: 4, name: "CSS-Tricks Admin", color: "blue" },
]; export const wait = async amount => new Promise(res => setTimeout(res, amount ?? 100)); export async function getTodos() { await wait(); return todos;
} export async function getTags() { await wait(); return tags.reduce((lookup, tag) => { lookup[tag.id] = tag; return lookup; }, {});
} export async function getTodo(id) { return todos.find(t => t.id == id);
}
Yapılacak işlerimizin düz bir dizisini döndürme işlevi, etiketlerimizin aranması ve tek bir yapılacak iş getirme işlevi (sonuncusunu Ayrıntılar sayfamızda kullanacağız).
Verilerimiz yükleniyor
Bu verileri Svelte sayfalarımıza nasıl alırız? Birkaç yol var, ama şimdilik bir tane oluşturalım. +page.server.js
bizim dosya list
klasör ve bu içeriği içine koyun:
import { getTodos, getTags } from "$lib/data/todoData"; export function load() { const todos = getTodos(); const tags = getTags(); return { todos, tags, };
}
tanımladık load()
sayfa için gerekli verileri çeken işlev. olduğumuza dikkat edin değil await
-bizim aramalar getTodos
ve getTags
zaman uyumsuz işlevler. Bunu yapmak, etiketlerimizi yüklemeden önce yapılacak işlerimizin gelmesini beklerken bir veri yükleme şelalesi oluşturur. Bunun yerine, ham vaatleri iade ediyoruz. load
ve SvelteKit gerekli çalışmaları yapar. await
Onları.
Peki sayfa bileşenimizden bu verilere nasıl ulaşacağız? SvelteKit şunları sağlar: data
üzerinde veri bulunan bileşenimiz için destek. Yapılacaklar öğelerimize ve etiketlerimize bir kullanarak erişeceğiz. reaktif atama.
Liste sayfası bileşenimiz artık böyle görünüyor.
<script> export let data; $: ({ todo, tags } = data);
</script> <table cellspacing="10" cellpadding="10"> <thead> <tr> <th>Task</th> <th>Tags</th> <th>Assigned</th> </tr> </thead> <tbody> {#each todos as t} <tr> <td>{t.title}</td> <td>{t.tags.map((id) => tags[id].name).join(', ')}</td> <td>{t.assigned}</td> </tr> {/each} </tbody>
</table> <style> th { text-align: left; }
</style>
Ve bu, yapılacak işlerimizi oluşturmalı!
Düzen grupları
Ayrıntılar sayfasına geçmeden ve verileri değiştirmeden önce, gerçekten harika bir SvelteKit özelliğine bir göz atalım: düzen grupları. Tüm yönetici sayfaları için iç içe yerleştirilmiş düzenleri zaten gördük, ancak dosya sistemimizin aynı düzeyindeki rasgele sayfalar arasında bir düzeni paylaşmak istersek ne olur? Özellikle, yalnızca Liste sayfamız ile Ayrıntılar sayfamız arasında bir düzen paylaşmak istersek ne olur? Bu seviyede zaten küresel bir düzenimiz var. Bunun yerine, yeni bir dizin oluşturabiliriz, ancak bunun gibi parantez içinde bir adla:
Artık Liste ve Ayrıntılar sayfalarımızı kapsayan bir düzen grubumuz var. adını ben koydum (todo-management)
ama sen ona istediğin gibi bir isim verebilirsin. Açık olmak gerekirse, bu isim değil düzen grubunun içindeki sayfaların URL'lerini etkiler. URL'ler aynı kalacaktır; mizanpaj grupları, sayfalara paylaşılan mizanpajlar eklemenizi sağlar; routes
.
We olabilir ekle +layout.svelte
dosya ve biraz saçma <div>
"Hey, yapılacak işleri yönetiyoruz" yazan pankart. Ama daha ilginç bir şey yapalım. Düzenler tanımlayabilir load()
altındaki tüm rotalar için veri sağlamak amacıyla çalışır. Etiketlerimizi yüklemek için bu işlevi kullanalım - çünkü etiketlerimizi details
sayfaya ek olarak list
zaten sahip olduğumuz sayfa.
Gerçekte, bir düzen grubunu yalnızca tek bir veri parçası sağlamaya zorlamak neredeyse kesinlikle buna değmez; bu verileri çoğaltmak daha iyidir load()
her sayfa için işlev Ancak bu gönderi için, yeni bir SvelteKit özelliği görmemiz için gereken bahaneyi sağlayacak!
İlk önce, hadi işimize gidelim list
sayfanın +page.server.js
dosyasını açın ve içindeki etiketleri kaldırın.
import { getTodos, getTags } from "$lib/data/todoData"; export function load() { const todos = getTodos(); return { todos, };
}
Liste sayfamız artık bir hata üretmelidir, çünkü herhangi bir tags
nesne. Bunu bir ekleyerek düzeltelim +layout.server.js
düzen grubumuzdaki dosya, ardından bir tanımlayın load()
etiketlerimizi yükleyen işlev.
import { getTags } from "$lib/data/todoData"; export function load() { const tags = getTags(); return { tags, };
}
Ve aynen böyle, Liste sayfamız yeniden oluşturuluyor!
Birden çok konumdan veri yüklüyoruz
Burada olup bitenlere ince bir nokta koyalım:
- Bir tanımladık
load()
yerleştirdiğimiz düzen grubumuz için işlev+layout.server.js
. - Bu, için veri sağlar herşey mizanpajın hizmet verdiği sayfaların sayısı — bu durumda Liste ve Ayrıntılar sayfalarımız anlamına gelir.
- Liste sayfamız ayrıca bir
load()
içine giren fonksiyon+page.server.js
dosyası. - SvelteKit, bu veri kaynaklarının sonuçlarını alıp bir araya getirmek ve her ikisini de
data
.
Ayrıntılar sayfamız
Bir yapılacak iş öğesini düzenlemek için Ayrıntılar sayfamızı kullanacağız. Öncelikle Liste sayfamızdaki tabloya, sorgu dizesinde yapılacak iş öğesinin kimliğini içeren Ayrıntılar sayfasına bağlanan bir sütun ekleyelim.
<td><a href="/tr/details?id={t.id}">Edit</a></td>
Şimdi Ayrıntılar sayfamızı oluşturalım. Öncelikle, düzenlemekte olduğumuz yapılacaklar öğesini almak için bir yükleyici ekleyeceğiz. Oluşturmak +page.server.js
in /details
, bu içerikle:
import { getTodo, updateTodo, wait } from "$lib/data/todoData"; export function load({ url }) { const id = url.searchParams.get("id"); console.log(id); const todo = getTodo(id); return { todo, };
}
Yükleyicimiz bir url
sorgu dizesi değerlerini çekebileceğimiz özellik. Bu, düzenlediğimiz yapılacak iş öğesine bakmayı kolaylaştırır. Bu yapılacak işi, düzenleme işleviyle birlikte işleyelim.
SvelteKit, formları kullandığınız sürece harika yerleşik mutasyon yeteneklerine sahiptir. Formları hatırladın mı? İşte Ayrıntılar sayfamız. Kısalık için stilleri eledim.
<script> import { enhance } from "$app/forms"; export let data; $: ({ todo, tags } = data); $: currentTags = todo.tags.map(id => tags[id]);
</script> <form use:enhance method="post" action="?/editTodo"> <input name="id" type="hidden" value="{todo.id}" /> <input name="title" value="{todo.title}" /> <div> {#each currentTags as tag} <span style="{`color:" ${tag.color};`}>{tag.name}</span> {/each} </div> <button>Save</button>
</form>
Etiketleri eskisi gibi düzen grubumuzun yükleyicisinden ve yapılacaklar öğesini sayfamızın yükleyicisinden alıyoruz. Gerçek olanı alıyoruz tag
yapılacaklar listesinden nesneleri etiket kimlikleri ve ardından her şeyi işleme. Kimlik için gizli bir girdi ve başlık için gerçek bir girdi içeren bir form oluşturuyoruz. Etiketleri görüntülüyoruz ve ardından formu göndermek için bir düğme sağlıyoruz.
Eğer fark ettiyseniz use:enhance
, bu sadece SvelteKit'e aşamalı geliştirme kullanmasını ve Ajax'a formumuzu göndermesini söyler. Muhtemelen bunu her zaman kullanacaksın.
Düzenlemelerimizi nasıl kaydedeceğiz?
Dikkat action="?/editTodo"
formun kendisinde öznitelik? Bu bize düzenlenmiş verilerimizi nereye göndermek istediğimizi söyler. Bizim durumumuz için, bir editTodo
"eylem."
Aşağıdakileri ekleyerek oluşturalım. +page.server.js
Ayrıntılar için zaten sahip olduğumuz dosya (şu anda bir load()
işlevi, yapılacak işlerimizi almak için):
import { redirect } from "@sveltejs/kit"; // ... export const actions = { async editTodo({ request }) { const formData = await request.formData(); const id = formData.get("id"); const newTitle = formData.get("title"); await wait(250); updateTodo(id, newTitle); throw redirect(303, "/list"); },
};
Form eylemleri bize request
erişim sağlayan nesne formData
olan get
çeşitli form alanlarımız için yöntem. ID değeri için bu gizli girişi ekledik, böylece düzenlemekte olduğumuz yapılacak iş öğesine bakmak için onu burada yakalayabiliriz. Gecikmeyi simüle ediyoruz, yenisini çağırıyoruz updateTodo()
yöntemi, ardından kullanıcıyı tekrar /list
sayfa. updateTodo()
yöntem yalnızca statik verilerimizi günceller; gerçek hayatta, kullandığınız veri deposunda bir tür güncelleme çalıştırırsınız.
export async function updateTodo(id, newTitle) { const todo = todos.find(t => t.id == id); Object.assign(todo, { title: newTitle });
}
Hadi deneyelim. Önce Liste sayfasına gideceğiz:
Şimdi düzenleme sayfasını getirmek için yapılacak işlerden biri için Düzenle düğmesini tıklayalım. /details
.
Yeni bir başlık ekleyeceğiz:
Şimdi Kaydet'i tıklayın. Bu bizi eski halimize döndürmeli /list
sayfa, yeni yapılacak iş başlığı uygulanmış olarak.
Yeni başlık nasıl böyle ortaya çıktı? Otomatikti. Yönlendirdikten sonra /list
sayfasında, SvelteKit tüm yükleyicilerimizi otomatik olarak yeniden çalıştırdı, ne olursa olsun yapacağı gibi. Bu, SvelteKit gibi yeni nesil uygulama çerçevelerinin sağladığı en önemli gelişmedir. Remix, ve Sonraki 13 sağlamak. Size sayfaları işlemek için uygun bir yol sağlamak ve ardından verileri güncellemek için ihtiyaç duyabileceğiniz uç noktaları getirme konusunda size bol şans dilemek yerine, veri yüklemenin yanı sıra veri mutasyonunu da entegre ederek ikisinin birlikte çalışmasına izin verirler.
Merak edebileceğiniz birkaç şey…
Bu mutasyon güncellemesi çok etkileyici görünmüyor. Yükleyiciler, her gezindiğinizde yeniden çalışacaktır. Form işlemimize bir yönlendirme eklememiş olsaydık ve geçerli sayfada kalsaydık ne olurdu? SvelteKit, güncellemeyi daha önce olduğu gibi form eyleminde gerçekleştirir, ancak yine de sayfa düzen(ler)indeki yükleyiciler dahil olmak üzere geçerli sayfa için tüm yükleyicileri yeniden çalıştırın.
Verilerimizi geçersiz kılmanın daha hedefli yollarına sahip olabilir miyiz? Örneğin, etiketlerimiz düzenlenmemişti, dolayısıyla gerçek hayatta onları yeniden sorgulamak istemezdik. Evet, size gösterdiğim şey sadece SvelteKit'teki varsayılan form davranışıdır. Varsayılan davranışı şu şekilde kapatabilirsiniz: geri arama sağlanması use:enhance
. Ardından SvelteKit kullanım kılavuzu sağlar geçersiz kılma işlevleri.
Her navigasyonda veri yüklemek potansiyel olarak pahalı ve gereksizdir. Gibi araçlarla yaptığım gibi bu verileri önbelleğe alabilir miyim? react-query
? Evet, sadece farklı. SvelteKit, web'in zaten sağladığı önbellek denetimi başlıklarını ayarlamanıza (ve ardından bunlara uymanıza) olanak tanır. Ve bir sonraki gönderide önbellek geçersiz kılma mekanizmalarını ele alacağım.
Bu makale boyunca yaptığımız her şey, statik verileri kullanır ve bellekteki değerleri değiştirir. Her şeyi geri almanız ve baştan başlamanız gerekirse, durdurun ve yeniden başlatın. npm run dev
Düğüm süreci.
Tamamlayan
SvelteKit'in yüzeyini zar zor çizdik, ama umarız bu konuda heyecanlanacak kadar görmüşsünüzdür. Web geliştirmeyi en son ne zaman bu kadar eğlenceli bulduğumu hatırlayamıyorum. Paketleme, yönlendirme, SSR ve devreye alma gibi şeyler kutudan çıkar çıkmaz yapıldığından, yapılandırmadan çok kodlamaya zaman harcıyorum.
İşte SvelteKit'i öğrenirken sonraki adımlar olarak kullanabileceğiniz birkaç kaynak daha:
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- Plato blok zinciri. Web3 Metaverse Zekası. Bilgi Güçlendirildi. Buradan Erişin.
- Kaynak: https://css-tricks.com/getting-started-with-sveltekit/
- 1
- 10
- 100
- 11
- 7
- 9
- 98
- a
- Yapabilmek
- Hakkımızda
- hakkında
- erişim
- Hesap
- Action
- eylemler
- Adem
- katma
- ilave
- adres
- Gizem
- ileri
- etkiler
- Türkiye
- Izin
- yanında
- zaten
- her zaman
- miktar
- ve
- Başka
- cevap
- kimse
- uygulamayı yükleyeceğiz
- Uygulama
- uygulamaları
- uygulamalı
- etrafında
- Dizi
- göre
- yapay
- atanmış
- Otomatik
- otomatik olarak
- mevcut
- beklemek
- Arka
- arka fon
- afiş
- bar
- temel
- önce
- İYİ
- Daha iyi
- arasında
- Bit
- Siyah
- Blog
- Blog Yazıları
- Mavi
- kutu
- getirmek
- tarayıcı
- böcek
- inşa etmek
- yapılı
- yerleşik
- düğmesine tıklayın
- Önbellek
- çağrı
- aramalar
- yetenekleri
- dava
- kesinlikle
- zor
- değiştirme
- açık
- kod
- kodlama
- renk
- Sütun
- nasıl
- ortak
- Yarışmalar
- bileşen
- bileşenler
- konferanslar
- Sosyal medya
- bağlantı
- konsolos
- içerik
- Uygun
- olabilir
- Kurs
- kaplama
- kapaklar
- yaratmak
- çevrimiçi kurslar düzenliyorlar.
- Oluşturma
- akım
- Şu anda
- veri
- veritabanı
- Varsayılan
- tanımlar
- geciktirmek
- gecikmeleri
- açılma
- Dizayn
- ayrıntılar
- dev
- gelişme
- DID
- ekran
- Değil
- yapıyor
- Dont
- her
- başka yerde
- yeterli
- Tüm
- bütünlük
- hata
- vb
- Hatta
- Her
- her şey
- örnek
- uyarılmış
- Heyecan
- var
- pahalı
- ihracat
- mümkün
- Özellikler(Hazırlık aşamasında)
- az
- Alanlar
- fileto
- dosyalar
- Nihayet
- ince
- Ateş
- Ad
- sabit
- düz
- takip etme
- sonsuza dek
- Airdrop Formu
- biçim
- formlar
- bulundu
- çerçeveler
- itibaren
- tam
- eğlence
- işlev
- işlevsellik
- fonksiyonlar
- almak
- alma
- Vermek
- Verilmesi
- Küresel
- Go
- gol
- Goes
- gidiş
- kapmak
- grup
- Grubun
- olmak
- Zor
- başlıkları
- yardım et
- okuyun
- Gizli
- hiyerarşi
- üst düzey
- tutar
- İnşallah
- Yatay
- Ne kadar
- HTML
- HTTPS
- Ben
- hayal
- ithalat
- önem
- etkileyici
- in
- Dahil olmak üzere
- ilk
- giriş
- yerine
- entegre
- ilginç
- Giriş
- IT
- ürün
- kendisi
- JavaScript
- anahtar
- Soyad
- son
- Düzen
- öğrenme
- Lets
- seviye
- Li
- hayat
- ışık
- Muhtemelen
- bağlantılar
- Liste
- yaşamak
- yük
- yükleyici
- yükleme
- yükler
- Uzun
- Bakın
- GÖRÜNÜYOR
- arama
- şans
- makinalar
- yapmak
- YAPAR
- Yapımı
- yönetme
- Manuel
- Kenar
- Mesele
- anlamına geliyor
- Bellek
- sadece
- birleştirme
- yöntem
- olabilir
- akla
- modül
- Daha
- hareket
- hareketli
- çoklu
- isim
- adlı
- nav
- Gezin
- Navigasyon
- gerekli
- gerek
- yeni
- sonraki
- düğüm
- normal
- numara
- nesne
- nesneler
- ONE
- sipariş
- Diğer
- aksi takdirde
- kendi
- belirli
- yol
- Yapmak
- seçmek
- parça
- parçalar
- tutucu
- Platon
- Plato Veri Zekası
- PlatoVeri
- Nokta
- Çivi
- Mesajlar
- potansiyel
- Hazırlamak
- Sorun
- süreç
- üretmek
- ilerici
- proje
- vaat
- özellik
- korumalı
- sağlamak
- sağlar
- Çekiyor
- koymak
- soru
- Çiğ
- Okumak
- gerçek
- gerçek hayat
- Gerçeklik
- Kırmızı
- yönlendirme
- Ne olursa olsun
- kalmak
- hatırlamak
- Kaldır
- render
- işler
- talep
- Kaynaklar
- Sonuçlar
- dönüş
- dönen
- İade
- dönmek
- Zengin
- kök
- Rota
- yolları
- koşmak
- koşu
- aynı
- İndirim
- görme
- vermektedir
- set
- gölge
- paylaş
- Paylaşılan
- meli
- şov
- Basit
- sadece
- beri
- tek
- slayt
- So
- biraz
- bir şey
- kaynaklar
- geçirmek
- başlama
- başladı
- kaldı
- Basamaklar
- dur
- sunmak
- Destekler
- yüzey
- sistem
- tablo
- TAG
- Bizi daha iyi tanımak için
- alma
- Konuşmak
- Tandem
- Hedeflenen
- anlatır
- şablon
- terminal
- The
- işler
- boyunca
- zaman
- Başlık
- için
- birlikte
- çok
- araçlar
- Tur
- tedavi etmek
- gerçek
- DÖNÜŞ
- daktilo ile yazılmış yazı
- ui
- altında
- Güncelleme
- Güncellemeler
- URL
- us
- kullanım
- kullanıcı
- değer
- Değerler
- çeşitli
- üzerinden
- Görüntüle
- beklemek
- aranan
- yolları
- ağ
- web bileşenleri
- Web geliştirme
- Ne
- hangi
- beyaz
- irade
- kazanmak
- olmadan
- harika
- İş
- çalışır
- değer
- olur
- yazmak
- Sen
- zefirnet