
构建强大的反应和反应本机应用程序,该应用程序从数百到数万记录扩展,并保持快速⚡️
| 西瓜 | |
|---|---|
| ⚡️ | 无论您拥有多少数据,都可以立即启动您的应用程序 |
| ? | 从数百到数万记录中高度可扩展 |
| ? | 懒惰的加载。仅在需要时加载数据 |
| 脱机第一。与您自己的后端同步 | |
| 乘数。 iOS,Android,Windows,Web和Node.js | |
| ⚛️ | 对RECT进行了优化。轻松将数据插入组件 |
| ? | 框架 - 敏捷。使用JS API插入其他UI框架 |
| ⏱ | 快速地。并随着每个版本的速度加快! |
| ✅ | 经过证明。自2017年以来的诺兹(Nozbe)(以及许多其他人) |
| 反应性。 (可选)RXJS API | |
| ? | 关系。建在岩石固定基础上 |
| 使用流或打字条的静态打字 |
WaterMelondB是一种处理React Native和React Web应用程序中用户数据的新方法。
它针对在React Native中构建复杂应用程序进行了优化,而第一目标是现实世界的性能。简而言之,您的应用必须快速启动。
对于简单的应用程序,使用Redux或MOBX具有持久性适配器是最简单的方法。但是,当您开始扩展到成千上万或数万个数据库记录时,您的应用程序现在启动速度会很慢(尤其是在较慢的Android设备上)。将完整数据库加载到JavaScript中很昂贵!
西瓜通过懒惰来修复它。在要求之前,什么都没加载。而且,由于所有查询均直接在单独的本机线程上的岩石固体SQLITE数据库上执行,因此大多数查询在即时解决。
但是,与直接使用Sqlite不同,西瓜是完全可观察到的。因此,每当您更改记录时,所有取决于它的UI都会自动重新渲染。例如,完成待办事项应用程序中的任务将重新渲染任务组件,列表(重新排序)和所有相关的任务计数器。了解更多。
|
| | ---- | --- | |
下一代React数据库
(关于Waltermelondb的谈话)
快速(过度简化)示例:带有帖子和评论的应用程序。
首先,您定义模型:
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是一个开源项目,需要您的帮助才能蓬勃发展!
如果您想要的缺少功能,错误或其他改进,我们鼓励您做出贡献!请随时打开问题以获取一些指导,并查看有关项目设置,测试等的详细信息的贡献指南。
如果您刚刚开始,请查看易于贡献的好第一期。如果您做出非平凡的贡献,请给我发电子邮件,我会给您发送一个好人吗?贴纸!
如果您正在制作或正在考虑使用WaltermelondB制作应用程序,请告诉我们!
Watermelondb由@nozbe创建。
Watermelondb的主要作者和维护者是Radek Pietruszewski(网站袭为?(Twitter))
查看所有贡献者。
WalterMelondB可根据MIT许可获得。有关更多信息,请参见许可证文件。