
قم ببناء التطبيقات القوية وتفاعل التطبيقات الأصلية التي تتوسع من مئات إلى عشرات الآلاف من السجلات وتبقى سريعة ⚡
| البطيخ | |
|---|---|
| ⚡ | قم بتشغيل تطبيقك على الفور بغض النظر عن مقدار البيانات التي لديك |
| ؟ | قابلة للتطوير بدرجة عالية من مئات إلى عشرات الآلاف من السجلات |
| ؟ | محملة كسول . فقط تحميل البيانات عندما تحتاجها |
| دون اتصال بالإنترنت. مزامنة مع الواجهة الخلفية الخاصة بك | |
| multiplatform . iOS و Android و Windows و Web و Node.js | |
| ⚛ | مُحسّن للتفاعل. قم بتوصيل البيانات بسهولة بالمكونات |
| ؟ | إطار عمل. استخدم JS API لتوصيل أطر عمل واجهة المستخدم الأخرى |
| ⏱ | سريع. والحصول على أسرع مع كل إصدار! |
| ✅ | ثبت. سلطات Nozbe منذ عام 2017 (وغيرها الكثير) |
| رد الفعل. (اختياري) RXJS API | |
| ؟ | العلائقية. بنيت على مؤسسة SQLITE الصخرية الصخرية |
| الكتابة الثابتة مع التدفق أو typeScript |
PathelondB هي طريقة جديدة للتعامل مع بيانات المستخدم في تطبيقات React Native و React Web.
تم تحسينه لبناء تطبيقات معقدة في React Native ، والهدف الأول هو الأداء في العالم الحقيقي . بكلمات بسيطة ، يجب أن يتم تشغيل تطبيقك بسرعة .
بالنسبة للتطبيقات البسيطة ، فإن استخدام Redux أو Mobx مع محول الثبات هو أسهل طريقة للذهاب. ولكن عندما تبدأ في التحجيم إلى آلاف أو عشرات الآلاف من سجلات قواعد البيانات ، سيكون تطبيقك الآن بطيئًا في الإطلاق (خاصة على أجهزة Android البطيئة). تحميل قاعدة بيانات كاملة في JavaScript باهظة الثمن!
يقوم البطيخ بإصلاحه من خلال كونه كسول . لا شيء يتم تحميله حتى يتم طلبه. ونظرًا لأن جميع الاستعلام يتم تنفيذه مباشرة على قاعدة بيانات SQLite الصخرية الصلبة على مؤشر ترابط أصلي منفصل ، فإن معظم الاستعلامات حل في لحظة.
ولكن على عكس استخدام SQLite مباشرة ، يمكن ملاحظ البطيخ بالكامل . لذلك كلما قمت بتغيير السجل ، فإن جميع واجهة المستخدم التي تعتمد عليه ستعيد إعادة تقديمها تلقائيًا. على سبيل المثال ، سيعيد إكمال المهمة في تطبيق المهام إعادة تقديم مكون المهمة ، والقائمة (لإعادة الترتيب) ، وجميع عدادات المهام ذات الصلة. يتعلم أكثر .
|
| | ---- | --- | |
الجيل التالي رد فعل قواعد البيانات
(حديث عن البطيخ)
مثال سريع (مفرط في التبسيط): تطبيق يحتوي على منشورات وتعليقات.
أولاً ، تحدد النماذج:
class Post extends Model {
@ field ( 'name' ) name
@ field ( 'body' ) body
@ children ( 'comments' ) comments
}
class Comment extends Model {
@ field ( 'body' ) body
@ field ( 'author' ) author
}ثم ، تقوم بتوصيل المكونات بالبيانات:
const Comment = ( { comment } ) => (
< View style = { styles . commentBox } >
< Text > { comment . body } — by { comment . author } </ Text >
</ View >
)
// This is how you make your app reactive!
const enhance = withObservables ( [ 'comment' ] , ( { comment } ) => ( {
comment ,
} ) )
const EnhancedComment = enhance ( Comment )والآن يمكنك تقديم المنشور بأكمله:
const Post = ( { post , comments } ) => (
< View >
< Text > { post . name } </ Text >
< Text > Comments: </ Text >
{ comments . map ( comment =>
< EnhancedComment key = { comment . id } comment = { comment } />
) }
</ View >
)
const enhance = withObservables ( [ 'post' ] , ( { post } ) => ( {
post ,
comments : post . comments
} ) )النتيجة تفاعلية تماما! عند إضافة منشور أو تعليق أو تغييره أو إزالته ، ستعيد المكونات الصحيحة تلقائيًا على الشاشة. لا يهم إذا حدث تغيير في جزء مختلف تمامًا من التطبيق ، فكل شيء يعمل خارج الصندوق!














هل تستخدم شركتك أو التطبيق ؟؟ افتح طلب سحب وأضف شعارك/أيقونة مع رابط هنا!

Watermelondb هو مشروع مفتوح المصدر ويحتاج إلى مساعدتك في الازدهار!
إذا كانت هناك ميزة مفقودة أو خطأ أو تحسن آخر تريده ، فنحن نشجعك على المساهمة! لا تتردد في فتح مشكلة للحصول على بعض التوجيهات ومشاهدة دليل المساهمة للحصول على تفاصيل حول إعداد المشروع ، والاختبار ، وما إلى ذلك.
إذا كنت قد بدأت للتو ، فراجع المشكلات الأولى الجيدة التي يسهل المساهمة فيها. إذا قدمت مساهمة غير تافهة ، فأرسل لي بريدًا إلكترونيًا ، وسأرسل لك لطيفًا؟ ملصق!
إذا قمت بعمل أو تفكر في صنع تطبيق باستخدام WaterMelondb ، فيرجى إخبارنا!
تم إنشاء Watermelondb بواسطة nozbe.
المؤلف الرئيسي للمؤلف والمؤلف الرئيسي لـ Patermelondb هو Radek Pietruszewski (موقع الويب ⋅؟ (Twitter))
انظر جميع المساهمين.
يتوفر WaterMelondB بموجب ترخيص MIT. انظر ملف الترخيص لمزيد من المعلومات.