这个问题是asked on GitHub,答案是“嘿,你听说过这个网站Stack Overflow吗?你应该问那个问题!”。
我在这里,问一个问题!
在重构现有的Web应用程序以支持react-native
时,是否必须放弃索引数据库支持?或者,Indexed DB是否可以开箱即用?
回答上述问题的原因是什么?索引数据库不能简单地工作,因为我们不在浏览器中并且React Native当前没有实现该API吗?我们可以在React Native中填充索引数据库吗?或者,我们应该转向此平台的替代持久性方法吗?
我问这是技术主管,想知道react-native
是否会成为我们团队的一个简单或困难的过渡。
答案 0 :(得分:1)
不,到目前为止,React Native不支持IndexedDB。
对于React Native中的持久存储,选项为:
AsyncStorage :存储对象的最简单方法是提供基于键值的异步API来存储数据。仅提供基本的获取量API,不适用于搜索查询。
Realm :完全成熟的面向文档的移动数据库,具有复杂查询的能力。同时具有Pro版本和免费开源版本。开发与服务器同步的脱机应用程序的最佳选择。
答案 1 :(得分:0)
我不认为react-native目前支持它,但如果您希望数据持续存在,则可以始终使用AsyncStorage
:https://facebook.github.io/react-native/docs/asyncstorage.html
或者如果你正在使用redux,你可以使用redux-persist。
答案 2 :(得分:0)
我正在给realm.io一个机会。
专业版的授权非常昂贵,但它基本上是免费和开源的,所以如果你不使用他们的平台,你可以自由地尝试无限制。
这里有反应原生的特定官方文档:https://realm.io/docs/javascript/latest
答案 3 :(得分:0)
Pouchdb是在Web和本机反应中使用indexeddb的另一种方法。
Pouchdb可在任何浏览器中支持indexeddb或webSQL(如果不支持)。 在本机的pouchdb上,有一个适配器可以连接到sqlLit。
在任何环境下,您的代码都是相同的。
答案 4 :(得分:0)
如果您正在使用 Expo,您也有 expo-sqlite
,但它有时会变得不稳定,而且它们的 API 很难使用。我必须将它包装起来,这样我才能让它与 async await 一起工作。