WatermelonDB 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
WatermelonDB 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 MIT
开发语言 Objective-C JavaScript
操作系统 跨平台
软件类型 开源软件
开发厂商
地区 不详
提 交 者 王练
适用人群 未知
收录时间 2018-09-11

软件简介

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()
}))
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (3)

加载中
有人使用吗?性能怎么样?现在用的mobx性能跟不上了
2018/11/05 09:19
回复
举报
打分: 还行
西瓜轮子。
2018/09/15 16:56
回复
举报
打分: 推荐
消灭零评论
2018/09/13 11:19
回复
举报
更多评论
发表于大前端专区
2018/11/05 07:08

WatermelonDB 0.7.0 发布,高性能 React 数据库框架

WatermelonDB 0.7.0 已发布,WatermelonDB 是一个高性能的 React 数据库框架,可构建功能强大的 React 和 React Native 应用,可在保持快速的同时从数百个记录扩展到数万个记录。 WatermelonDB 是一种在 React Native 和 React Web 应用中处理用户数据的新方法。它针对在 React/React Native 中构建复杂应用进行优化,其...

0
3
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
暂无内容
3 评论
18 收藏
分享
返回顶部
顶部