
Construisez des applications natives React et React puissantes qui passent de centaines à des dizaines de milliers d'enregistrements et restent rapides ⚡️
| Pastmélonne | |
|---|---|
| ⚡️ | Lancez votre application instantanément, quelle que soit la quantité de données dont vous disposez |
| ? | Très évolutif de centaines à dizaines de milliers de disques |
| ? | Chargé paresseux . Chargez uniquement les données lorsque vous en avez besoin |
| Hors ligne d'abord. Synchroniser avec votre propre backend | |
| Multiplatform . iOS, Android, Windows, Web et Node.js | |
| ⚛️ | Optimisé pour la réaction. Branchez facilement les données sur les composants |
| ? | Framework-agnostique. Utilisez l'API JS pour se connecter à d'autres frameworks d'interface utilisateur |
| ⏱ | Rapide. Et devenir plus rapide à chaque version! |
| ✅ | Éprouvé. Powers Nozbe depuis 2017 (et bien d'autres) |
| Réactif. API RXJS (Facultatif) | |
| ? | Relationnel. Construit sur la fondation SQLite solide rock |
| Typage statique avec flux ou dactylographie |
NatermelondB est une nouvelle façon de gérer les données des utilisateurs dans React Native et React Web Apps.
Il est optimisé pour construire des applications complexes dans React Native, et l'objectif numéro un est les performances du monde réel . En mots simples, votre application doit être lancée rapidement .
Pour les applications simples, l'utilisation de Redux ou Mobx avec un adaptateur de persistance est le moyen le plus simple. Mais lorsque vous commencez à évoluer à des milliers ou à des dizaines de milliers d'enregistrements de base de données, votre application sera désormais lente à lancer (en particulier sur les appareils Android plus lents). Le chargement d'une base de données complète dans JavaScript coûte cher!
La pastèque le répare en étant paresseux . Rien n'est chargé jusqu'à ce qu'il soit demandé. Et comme toute la requête est effectuée directement sur la base de données SQLite solide Rock-Solid sur un thread natif séparé, la plupart des requêtes résolvent en un instant.
Mais contrairement à l'utilisation directement de SQLite, la pastèque est entièrement observable . Ainsi, chaque fois que vous modifiez un enregistrement, toute l'interface utilisateur qui en dépendra redeviendra automatiquement. Par exemple, la réalisation d'une tâche dans une application TAIT renforcera le composant de tâche, la liste (pour réorganiser) et tous les compteurs de tâches pertinents. Apprendre encore plus .
|
| | ---- | --- | |
Bases de données de réaction de nouvelle génération
(une conversation sur la pastmélondb)
Exemple rapide (sur-simplifié): une application avec des publications et des commentaires.
Tout d'abord, vous définissez des modèles:
class Post extends Model {
@ field ( 'name' ) name
@ field ( 'body' ) body
@ children ( 'comments' ) comments
}
class Comment extends Model {
@ field ( 'body' ) body
@ field ( 'author' ) author
}Ensuite, vous connectez des composants aux données:
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 )Et maintenant, vous pouvez rendre l'intégralité du post:
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
} ) )Le résultat est entièrement réactif! Chaque fois qu'un message ou un commentaire est ajouté, modifié ou supprimé, les bons composants seront automatiquement renforcés à l'écran. Peu importe si un changement s'est produit dans une partie totalement différente de l'application, tout fonctionne juste hors de la boîte!














Votre entreprise ou votre application utilise-t-elle ?? Ouvrez une demande de traction et ajoutez votre logo / icône avec le lien ici!

Natermelondb est un projet open-source et il a besoin de votre aide pour prospérer!
S'il y a une fonctionnalité manquante, un bogue ou une autre amélioration que vous souhaitez, nous vous encourageons à contribuer! N'hésitez pas à ouvrir un problème pour obtenir des conseils et voir le guide de contribution pour plus de détails sur la configuration du projet, les tests, etc.
Si vous ne faites que commencer, voyez les bons premiers problèmes auxquels il est facile de contribuer. Si vous apportez une contribution non triviale, envoyez-moi un e-mail et je vous enverrai une belle? autocollant!
Si vous faites ou envisagez de créer une application à l'aide de WatermelondB, veuillez nous le faire savoir!
Natermelondb a été créé par @nozbe.
L'auteur et mainteneur principal de WatermelondB est Radek Pietruszewski (site Web ⋅? (Twitter))
Voir tous les contributeurs.
NatermelondB est disponible sous la licence du MIT. Voir le fichier de licence pour plus d'informations.