首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏贾鹏辉的技术专栏@CrazyCodeBoy

    AsyncStorage存储key管理小技巧

    AsyncStorage存储key管理小技巧 场景 AsyncStorage是React Native推荐的数据存储方式。 但是很不幸的告诉你,AsyncStorage 是不支持sql的,因为AsyncStorage是Key-Value存储系统。 那么如何才能快速的从众多记录中将符合条件的记录查询出来呢? 请往下看… AsyncStorage key管理 为了方便查询多条符合规则的记录,我们可以在保存数据前,对这条数据进行分类,然后记录下这条记录的key。 用例 保存数据 第一步:保存数据 saveFavoriteItem(key,vaule,callback) { AsyncStorage.setItem(key,vaule,(error ==-1)favoriteKeys.splice(index, 1); } AsyncStorage.setItem(this.favoriteKey,JSON.stringify

    1.4K70发布于 2018-05-07
  • 来自专栏刘晓杰

    React Native的模态,AsyncStorage,DeviceEventEmitter

    popToHome(data) { //this.props.navigator.pop(); this.props.removeModal(data); } 2.AsyncStorage—SharedPreferences

    1K60发布于 2018-05-18
  • 来自专栏向治洪

    React Native之轻量级存储AsyncStorage

    AsyncStorage是一个简单的、异步的、持久化的以键值对形式进行数据存储的存储系统,对于App来说是全局性的。 它的作用等价于iOS的NSUserDefaluts或Android的SharedPreferences,使用AsyncStorage用来替换老旧的LocalStorage。 示例 简单存储: setData(text){ AsyncStorage.setItem(AsyncStorageKey,text,()=>{ this.setState({ AsyncStorage.getItem(AsyncStorageKey,(error,text)=>{ if(text=== null ){ alert(AsyncStorageKey +"没有对应的值"); }else{ //删除数据 AsyncStorage.removeItem(AsyncStorageKey,()=>{

    3.3K60发布于 2018-01-26
  • 来自专栏向治洪

    React Native之轻量级存储AsyncStorage

    AsyncStorage是一个简单的、异步的、持久化的以键值对形式进行数据存储的存储系统,对于App来说是全局性的。 它的作用等价于iOS的NSUserDefaluts或Android的SharedPreferences,使用AsyncStorage用来替换老旧的LocalStorage。 示例 简单存储: setData(text){ AsyncStorage.setItem(AsyncStorageKey,text,()=>{ this.setState({ AsyncStorage.getItem(AsyncStorageKey,(error,text)=>{ if(text=== null ){ alert(AsyncStorageKey +"没有对应的值"); }else{ //删除数据 AsyncStorage.removeItem(AsyncStorageKey,()=>{

    3.8K60发布于 2018-02-06
  • 来自专栏网络日志

    React Native Expo急速教程 7 - AsyncStorage

    建议你在AsyncStorage之上使用一个抽象,而不是直接使用AsyncStorage,因为它是全局操作的,所以还是轻度使用好些。 在iOS上,AsyncStorage由原生代码支持,它将小的值存储在序列化的字典中,大的值存储在单独的文件中。 在Android上,AsyncStorage将根据可用的情况使用RocksDB或SQLite。 导入AsyncStorage库。 import { AsyncStorage } from 'react-native'; 持久化数据: _storeData = async () => { try { await AsyncStorage.setItem

    64210编辑于 2024-06-01
  • 来自专栏技术社区

    移动跨平台ReactNative存储数据组件AsyncStorage【13】

    React Native 存储数据组件 AsyncStorage React Native 提供了 AsyncStorage 组件用于存储数据。 AsyncStorage 是一个简单的,未加密的,异步的,持久的键值存储系统。 AsyncStorage 是一个全局的存储系统,没有实例这一概念。要存储数据就往里面扔,要读取数据就发起请求。 AsyncStorage 对外提供了简单的 JavaScript 接口。每一个接口都是 异步 的,每一个接口都返回一个 Promise 对象。 范例 下面的代码演示了如何在存储数据组件 AsyncStorage 中存储和读取数据。 } } setName = () => { AsyncStorage.setItem('name', this.state.inputText); Alert.alert

    4K10编辑于 2022-06-17
  • 来自专栏RN 技术

    react-native-easy-app 详解与使用之(一) AsyncStorage

    AsyncStorage进行封装,开发者只需几行代码即可实现一个持久化数据管理器。 2. 对fetch进行封装,使得开发者只需关注当前App的前后台交互逻辑和协议,定义好参数设置及解析逻辑即可。 通过设置一个屏幕参考尺寸,重置XView、XText、XImage的尺寸,实现自动多屏适配 可能有人觉得,RN的AsyncStorage本身就很简单,自己封装也就几十行代码的工作量,为什么还要使用第三方库 数据存储(AsyncStorage) RN平台提供的AsyncStorage有一些基础方法:setItem,getItem,removeItem,getAllKeys,这些是promise模式的并且AsyncStorage 只支持对纯字符串的存取,因此我们不便于直接在代码中去直接调用这些方法,我们得对AsyncStorage做一次封装,怎样封装能使我们更方便快捷的访问本地存取呢? 效率与性能的平衡 <读> 在初始化XStorage的时候就将AsyncStorage中的所有字段一次性读取到 RNStorage 对象中,以后续读取属性时,并不需要经过AsyncStorage,而是直接返回

    2.1K10发布于 2020-04-11
  • 来自专栏Newxc03的前端之路

    React Native基于AsyncStorage实现简单的收藏夹功能之Dao层封装常用函数

    AsyncStorage官方文档:https://react-native-async-storage.github.io/async-storage/ import AsyncStorage from id * @param value 收藏的项目 * @param callback */ saveFavoriteItem(key, value, callback) { AsyncStorage.setItem * @param key * @param isAdd true 添加,false 删除 * **/ updateFavoriteKeys(key, isAdd) { AsyncStorage.getItem == -1) favoriteKeys.splice(index, 1); } AsyncStorage.setItem(this.favoriteKey, JSON.stringify * @return {Promise} */ getFavoriteKeys() { return new Promise((resolve, reject) => { AsyncStorage.getItem

    1.1K10编辑于 2022-05-05
  • 来自专栏移动开发面面观

    React Native的数据持久化

    介绍 React Native中提供了AsyncStorage类用于持久化的处理数据。 相关资料reactnative.cn 由于AsyncStorage接口比较复杂,社区中出现了不少基于AsyncStorage的封装库,我们今天就使用了其中一款——react-native-storage code import Storage from 'react-native-storage'; import { AsyncStorage } from 'react-native'; var Cstorage var storage = new Storage({ // 最大容量,默认值1000条数据循环存储 size: 1000, // 存储引擎:对于RN使用AsyncStorage ,对于web使用window.localStorage // 如果不指定则数据只会保存在内存中,重启后即丢失 storageBackend: AsyncStorage,

    2.6K40发布于 2018-07-03
  • 来自专栏RN 技术

    一分钟实现,一个RN持久数据管理器

    这时候我们首选择的存储方式就是AsyncStorage,那我们先来看下AsyncStorage给我提供了哪些基本方法: AsyncStorage_methods.png 可以看出AsyncStorage 对于AsyncStorage的使用,官网建议我们再封装一层,而不是直接使用AsyncStorage。 那我们先在网上搜索一下看看大家是怎么封装AsyncStorage的。 【多此一举,为何不选择 sqlite 库】 虽然AsyncStorage的底层是sqlite db实现的,并不是表示我们就得让AsyncStorage支持sqlite的各种标准的数据库操作,AsyncStorage 没有更好的方式去访问AsyncStorage呢? 当然有,这里就要进入我们今天的主题了,【怎样一分钟实现一个AsyncStorage 访问器】,且在使用的时候也能方便,快捷的访问AsyncStorage数据。

    1.4K30发布于 2020-04-10
  • 来自专栏Newxc03的前端之路

    React Native请求网络数据时本地缓存优先策略的实现

    这里只放了核心代码,具体完整的代码可以去仓库里看看github地址 这里本地存储数据用到的库官方文档地址AsyncStorage import AsyncStorage from '@react-native-async-storage url) return; AsyncStorage.setItem(url, JSON.stringify(this. returns {Promise} */ fetchLocalData(url) { return new Promise((resolve, reject) => { AsyncStorage.getItem

    1.3K10编辑于 2022-05-05
  • 来自专栏正则

    React-Native数据持久化

    这边我们介绍两种在 React-Native 中比较常用的存储方式 AsyncStorage:这是官方使用的存储方式,类似于 iOS 中的 NSUserDefault ,区别在于,AsyncStorage AsyncStorage 简单使用 ---- AsyncStorage方法官方文档写得很详细,这边就不对赘述了! AsyncStorage 使用方法很简单,我们就直接上代码: // 增加 createData() { AsyncStorage.setItem('name', JSON.stringify }) } }); } // 查询 inquireData() { AsyncStorage.getItem('name' }) } AsyncStorage效果演示.gif 按照官方推荐,我们使用 AsyncStorage 前,最好进行一层封装,React-Native中文网 给我们提供了一个比较好的框架 —— react-native-storage

    4.7K21发布于 2021-11-02
  • 来自专栏程序员的知识天地

    使用 JS 实现一个本地数据库

    底层存储 这里的使用场景是 React Native,所以我使用的是 RN 的 AsyncStorage。 将所有要保存的数据转成对象,并转化为字符串。这里的核心思想就是序列化。 import { AsyncStorage } from 'react-native'; exports.setItem = async (key, value) => {    let item = exports.getItem = async (key) => {    let item = await AsyncStorage.getItem(key);    if (! exports.removeItem = async (key) => await AsyncStorage.removeItem(key); exports.removeItems = async ( keys) => await AsyncStorage.multiRemove(keys); exports.allKeys = async () => await AsyncStorage.getAllKeys

    4.7K20发布于 2018-10-06
  • 来自专栏木子墨的前端日常

    react-native-storage 使用笔记 持续更新

    React-native-storage是在AsyncStorage之上封装的一个缓存操作插件库,刚开始接触这个也遇到了一些问题,在这里简单记录总结一下,碰到了就记下来,持续更新吧 1、安卓下storage console.log('历史数据为空的时候到这里') }); 3、React-native-storage存储格式 React-native-storage本身是key-value形式存储,但使用AsyncStorage

    1.7K20发布于 2018-12-13
  • 来自专栏RN 技术

    React Native 一站式开发解决方案

    由于前面的文章已经做过介绍,在这里就不详细介绍了,通过本开源库,你可以有以下高级的“操作”: 可以像访问内存对象一样访问AsyncStorage 相关文章:一分钟实现,一个RN持久数据管理器; react-native-easy-app 详解与使用之(一) AsyncStorage 只需要几十行代码就能实现,一个完整的app与服务器的Http请求交互 相关文章:二十分钟封装,一个App前后台Http交互的实现; react-native-easy-app

    1K61发布于 2020-05-25
  • 来自专栏文大师的新世界

    9. redux如何精简代码

    react-native 持久化数据##### ---- 手机端肯定需要考虑离线的情况发生,有了redux,这件事情就简单了,只需要把store这个state树持久化就OK了,官方持久化接口使用的是AsyncStorage autoRehydrate()(createStoreWithMiddleware)(appReducers); persistStore(store, { storage: AsyncStorage

    1.4K50发布于 2018-08-30
  • 来自专栏玩转全栈

    React Native最佳实践指北

    import AsyncStorage from "@react-native-async-storage/async-storage";import { create } from 'zustand'import }), }), { name: 'settings-storage', // unique name storage: createJSONStorage(() => AsyncStorage /sessionTypes";import AsyncStorage from "@react-native-async-storage/async-storage";interface SessionState ), })), }), { name: "session-storage", storage: createJSONStorage(() => AsyncStorage

    1.6K10编辑于 2024-01-28
  • 来自专栏刘晓杰

    RN刷新回调

    fetchData: function () { console.log('启动fetchData里的方法了'); AsyncStorage.clear

    1.2K130发布于 2018-05-18
  • 来自专栏IMWeb前端团队

    react native入门实战(一)

    在react native中,我们也可以使用istView视图列表组件中的相关函数onChangeVisibleRows来辅助进行处理; 数据缓存, 使用react native AsyncStorage 具体的使用方法是使用AsyncStorage.getItem()等方法获取数据,然后将数据保存在cache中,通过shouldComponentUpdate方法判断cache data和response

    8.7K70发布于 2018-01-08
  • 来自专栏正则

    使用umi开发react-native应用

    持久化导航状态 RN 工程根目录下app.js文件: // app.js import { Linking, Platform, Text } from 'react-native'; /** * AsyncStorage * 按照 RN 官方文档引用:https://github.com/react-native-community/async-storage */ import AsyncStorage from ' == 'web' && initialUrl == null) { const savedStateString = await AsyncStorage.getItem(PERSISTENCE_KEY export async function onReactNavigationStateChange(state) { if (state) { await AsyncStorage.setItem

    8.3K30发布于 2021-11-02
领券