WatermelonDB 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
WatermelonDB 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
WatermelonDB 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 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) 发布并加入讨论🔥
发表于大前端专区
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 中构建复杂应用进行优化,其首要目标是提高实际性能。简单来说,就是保证的的应用必须快速启动。 更新内容: Deprecations [Schema] Co...

0
3
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
Facebook Hermes 安全漏洞
使用不兼容类型访问资源(类型混淆)
Facebook Hermes是美国Facebook公司的一个JavaScript引擎。该引擎针对React Native应用,去提高移动客户端应用App的性能,但是对浏览器 & Node.js 等服务端基础架构并不适用。 Facebook Hermes 之前版本存在安全漏洞,该漏洞允许攻击者通过特制的JavaScript执行任意代码。
CVE-2020-1911 MPS-2020-12483
2022-08-08 18:34
npm node-fetch 安全漏洞
不加限制或调节的资源分配
node-fetch 2.6.1和3.0.0-beta版本中存在安全漏洞。该漏洞源于内容大小超过限制时,将永远不会抛出FetchError。
CVE-2020-15168 MPS-2020-12719
2022-08-08 18:34
simple-get 信息泄露漏洞
信息暴露
Simple-Get是美国的一个使 Http 获取请求的最简单方法。 simple-get 存在信息泄露漏洞,该漏洞源于在NPM中暴露敏感信息给未经授权的参与者。
CVE-2022-0355 MPS-2022-2533
2022-08-08 18:34
Facebook Hermes 缓冲区错误漏洞
Facebook Hermes是美国Facebook公司的一个JavaScript引擎。该引擎针对React Native应用,去提高移动客户端应用App的性能,但是对浏览器 & Node.js 等服务端基础架构并不适用。 Facebook Hermes 中存在安全漏洞。越界读/写漏洞,攻击者可利用该漏洞使用JavaScript执行任意代码。
CVE-2020-1912 MPS-2020-12668
2022-08-08 18:34
minimist 输入验证错误漏洞
原型污染
minimist是一款命令行参数解析工具。 minimist 1.2.2之前版本存在输入验证错误漏洞。攻击者可借助‘constructor’和‘__proto__’ payload利用该漏洞添加或修改Object.prototype的属性。
CVE-2020-7598 MPS-2020-3516
2022-08-08 18:34
shell-quote 安全漏洞
命令注入
shell-quote是开源的一个软件包。用于解析和引用 shell 命令。 shell-quote package存在安全漏洞,攻击者可利用该漏洞可以植入任意代码从而执行相关操作。
CVE-2021-42740 MPS-2021-34136
2022-08-08 18:34
github ws 资源管理错误漏洞
github ws是一个应用软件。一种易于使用,运行迅速且经过全面测试的WebSocket客户端和服务器实现的方法。 漏洞版本中“Sec-Websocket-Protocol”标头的一个特殊的值可以用来显著降低ws服务器的速度,从而导致拒绝服务漏洞。
CVE-2021-32640 MPS-2021-7109
2022-08-08 18:34
Facebook Hermes 缓冲区错误漏洞
跨界内存读
Facebook Hermes是美国Facebook公司的一个JavaScript引擎。该引擎针对React Native应用,去提高移动客户端应用App的性能,但是对浏览器 & Node.js 等服务端基础架构并不适用。 Facebook Hermes JavaScript Interpreter 存在缓冲区错误漏洞,该漏洞使攻击者就可以通过精心制作的JavaScript导致拒绝服务攻击或进一步的内存损坏。
CVE-2020-1915 MPS-2020-15201
2022-08-08 18:34
Facebook Hermes安全漏洞
使用不兼容类型访问资源(类型混淆)
Facebook Hermes是美国Facebook公司的一个JavaScript引擎。该引擎针对React Native应用,去提高移动客户端应用App的性能,但是对浏览器 & Node.js 等服务端基础架构并不适用。 Facebook Hermes安全中存在漏洞,该漏洞源于通过在非异步和非生成器 getter/setter 函数上调用 await 和 yield 的地方传递无效的 JavaScript 代码,Hermes 将调用生成器函数并在无效的 await/yield 位置上出错。由于类型混淆错误,这可能导致分段错误,RCE 的可能性很小。此问题影响 v0.10.0 之前的 Hermes 版本。
CVE-2021-24044 MPS-2021-19948
2022-08-08 18:34
Async 安全漏洞
原型污染
Async是英国Caolan McMahon个人开发者的一个实用模块。用于使用异步 JavaScript。 Async 3.2.1 及之前版本存在安全漏洞,该漏洞源于 mapValues() 方法。攻击者可通过 mapValues() 方法获取权限。
CVE-2021-43138 MPS-2021-34434
2022-08-08 18:34
nodejs 资源管理错误漏洞
拒绝服务
nodejs是是一个基于ChromeV8引擎的JavaScript运行环境通过对Chromev8引擎进行了封装以及使用事件驱动和非阻塞IO的应用让Javascript开发高性能的后台应用成为了可能。 nodejs-glob-parent 存在安全漏洞,该漏洞源于正则表达式拒绝服务。
CVE-2020-28469 MPS-2021-7827
2022-08-08 18:34
Facebook Hermes 安全漏洞
数值类型间的不正确转换
Facebook Hermes是美国Facebook公司的一个JavaScript引擎。该引擎针对React Native应用,去提高移动客户端应用App的性能,但是对浏览器 & Node.js 等服务端基础架构并不适用。 Facebook Hermes中存在安全漏洞。攻击者可利用该漏洞执行任意代码。
CVE-2020-1913 MPS-2020-12669
2022-08-08 18:34
Facebook Hermes 安全漏洞
控制流实现总是不正确
Facebook Hermes是美国Facebook公司的一个JavaScript引擎。该引擎针对React Native应用,去提高移动客户端应用App的性能,但是对浏览器 & Node.js 等服务端基础架构并不适用。 Facebook Hermes prior存在安全漏洞,攻击者可利用该漏洞可能读的或理论上通过精心制作的JavaScript执行任意代码。
CVE-2020-1914 MPS-2020-14085
2022-08-08 18:34
React Native代码问题漏洞
React Native是开源的一个JavaScript框架。用于构建用户界面和本机应用程序。 react-native 0.59.0版本中存在代码问题漏洞,该漏洞源于 validateBaseUrl 函数中的正则表达式可能导致应用程序使用过多资源、无响应或崩溃。
CVE-2020-1920 MPS-2021-7651
2022-08-08 18:34
Facebook Hermes 资源管理错误漏洞
UAF
Facebook Hermes是美国Facebook公司的一个JavaScript引擎。该引擎针对React Native应用,去提高移动客户端应用App的性能,但是对浏览器 & Node.js 等服务端基础架构并不适用。 hermes 中存在资源管理错误漏洞,该漏洞源于未对输入数据进行安全性检查,攻击者可通过构造特殊的javascript执行代码。以下产品及版本受到影响:hermes d86e185e485b6330216dee8e854455c694e3a36e 之前版本受到影响。
CVE-2021-24037 MPS-2021-8535
2022-08-08 18:34
istanbul-reports 存在通过 window.opener 访问使用指向不受信任目标的 Web 链接漏洞
通过 window.opener 访问使用指向不受信任目标的 Web 链接
由于指向 https://istanbul 的链接中没有 rel 属性,因此该软件包的受影响版本容易受到反向 Tabnabbing 的攻击。
MPS-2022-13797
2022-08-08 18:34
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
3 评论
17 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部