WatermelonDB

下一代 React 数据库
授权协议 MIT
开发语言 Objective-C JavaScript
所属分类 手机/移动开发、 React 开源项目
软件类型 开源软件
地区 不详
投 递 者 沈翰
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

WatermelonDB,下一代 React 数据库,可构建功能强大的 React 和 React Native 应用程序,可在保持快速的同时从数百个记录扩展到数万个记录。

WatermelonDB 是一种在 React Native 和 React Web 应用中处理用户数据的新方法。它针对在 React/React Native 中构建复杂应用进行优化,其首要目标是提高实际性能。简单来说,就是保证的的应用必须快速启动。

当你开始扩展到数千或数万个数据库记录时,会发现对应用的启动速度有很大影响,尤其是在速度较慢的 Android 设备上。WatermelonDB 通过惰性(lazy)来解决问题 —— 除非有要求,否则不加载。而且由于所有查询都是直接以单独的线程在稳定的 SQLite 数据库上执行的,所以即使是在较慢的 Android 设备上,多数查询也会在不到1毫秒的时间内解析,即使有 10,000 条记录!

Usage

首先,定义模型

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: comment.observe()
}))
const EnhancedComment = enhance(Comment)

即可进行渲染

const Post = ({ post, comments }) => (
  <View>
    <Text>{post.name}</Text>
    <Text>Comments:</Text>
    {comments.map(comment =>
      <Comment key={comment.id} comment={comment} />
    )}
  </View>
)

const enhance = withObservables(['post'], ({ post }) => ({
  post: post.observe(),
  comments: post.comments.observe()
}))
  • WatermelonDB 详细介绍 WatermelonDB,下一代 React 数据库,可构建功能强大的 React 和 React Native 应用程序,可在保持快速的同时从数百个记录扩展到数万个记录。 WatermelonDB 是一种在 React Native 和 React Web 应用中处理用户数据的新方法。它针对在 React/React Native 中构建复杂应用进行优化,其首

  • Reaction本机有不同的数据库存储机制,用于不同的移动应用程序。简单的结构-如用户设置、应用程序设置和其他键值对数据-可以使用异步存储或安全存储轻松处理。 其他应用程序-比如Twitter克隆-从服务器获取数据并直接显示给用户。它们维护数据缓存,如果用户需要与任何文档交互,则直接调用API。 所以并不是所有的应用程序都需要一个数据库。 想要从地面上学到本地人的反应吗?这篇文章是我们高级图书馆的

 相关资料
  • 我们正在改变数据库,从一个支持8位int的数据库到一个不支持8位int的数据库。当Liquibase创建一个DB导致jOOQ生成“短”变量时,我们的代码会中断,但我们的代码使用字节/字节-这会中断代码签名。 有人建议我们继续使用以前的数据库(HSQLDB)来生成代码,而不是重新编码,它“应该”与新数据库一起运行。有不同的意见,除了直觉,我找不到任何决定性的东西,这似乎与jOOQ的设计目的背道而驰。

  • 本文向大家介绍简要说一下数据库范式?相关面试题,主要包含被问及简要说一下数据库范式?时的应答技巧和注意事项,需要的朋友参考一下 第一范式(1NF):强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项。 第二范式(2NF):要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。(在1NF基础上消除非主属性对主键的部分函数依赖) 第三范式(3NF):任何非主

  • 我正在尝试使用react应用程序从rest api下载数据。代码可以使用这个站点上的例子https://pusher.com/tutorials/consume-restful-api-react中的url,但当我将url更改为本地后端应用程序时,代码就不起作用了。 我的代码:

  • 其中mDatabase是对Firebase数据库的引用,而num是用于检索随机问题的随机值。我已经为4个选项重复了上述代码a 4次,但当我有2个选项时,如上面提到的和数据库结构中所示,我的应用程序停止工作。 我们将非常感谢所有的帮助。

  • 我有一个关于在数据库中存储数据的问题。 我正在应用程序中的一些屏幕上工作:登录屏幕(用户可以访问你的帐户),注册屏幕(用户可以创建一个新帐户),用户提供信息的屏幕(比如“母亲的名字和身高”),以及配置文件屏幕(显示用户提供的信息)。 我在登录屏幕和注册屏幕中没有问题,但是我不知道如何在Firebase数据库中保存用户提供的信息,在用户提供信息的屏幕中。 你们谁能帮我一下吗?我知道我可以使用fire

  • 本文向大家介绍说一下数据库的事务隔离?相关面试题,主要包含被问及说一下数据库的事务隔离?时的应答技巧和注意事项,需要的朋友参考一下 MySQL 的事务隔离是在 MySQL. ini 配置文件里添加的,在文件的最后添加: transaction-isolation = REPEATABLE-READ 1 可用的配置值:READ-UNCOMMITTED、READ-COMMITTED、REPEATABL