React Native

[RN] React Native 使用 AsyncStorage 存储 缓存数据

随声附和 提交于 2020-04-29 18:09:32
React Native 使用 AsyncStorage 存储 缓存数据 AsyncStorage是一个简单的、异步的、持久化的Key-Value存储系统,它对于App来说是全局性的。这是官网上对它的介绍。可以知道,这个asyncstorage也是以键值对的形式进行存储数据的。   那么问题来了,该怎么使用这个呢?官网上说并不推荐我们直接用这个asyncstorage,而是进行抽象封装以后在进行调用。 封装类 StorageUtil.js 代码如下: import {AsyncStorage} from ' react-native ' ; class StorageUtil { /* * * 获取 * @param key * @returns {*|Promise<*>|PromiseLike<T | never>|Promise<T | never>} */ static get (key) { return AsyncStorage.getItem(key).then((value) => { const jsonValue = JSON.parse(value); return jsonValue; }); } /* * * 保存 * @param key * @param value * @returns {*} */ static save(key, value) {

React Native之数据存储技术AsyncStorage

女生的网名这么多〃 提交于 2020-04-29 18:09:21
1. 如何将数据存储到本地? 数据存储是开发APP必不可少的一部分,比如页面缓存,从网络上获取数据的本地持久化等,那么在RN中如何进行数据存储呢? RN官方推荐我们在RN中使用AsyncStorage进行数据存储 2. 什么是AsyncStorage? 2.1 特点 简单的,异步的,持久化的key-value存储系统 AsyncStorage也是React Native官方推荐的数据存储方式,旨在代替LocalStorage 2.2 AsyncStorage在ios中存储的两种情况 如果存储的内容较小,那么AsyncStorage会将存储的内容放在 一个序列化的字典 中 如果存储的内容较大,那么AsyncStorage会将存储的内容放在 一个单独的文件 中 2.3 AsyncStorage在android中存储也分为两种情况: AsyncStorage会将数据存储在RocksDB或者SQLite中,具体存在RocksDB中还是SQLite中这取决于设备支持哪一种存储方式。 3. 如何使用AsyncStorage? 首先导入AsyncStorage作为RN一个标准组件使用 import AsyncStorage from '@react-native-community/async-storage'; //import { AsyncStorage } from 'react

React-Native-Storage使用介绍

北城以北 提交于 2020-04-29 18:09:03
react-native-storage 这是一个本地持久存储的封装,可以同时支持react-native(AsyncStorage)和浏览器(localStorage)。ES6语法,promise异步读取,使用jest进行了完整的单元测试。 安装 npm install react-native-storage –save 使用说明 配置 Web开发 对于Web开发你需要使用 webpack 和 babel 来支持es6模块导入功能。 在webpack的配置中添加如下几行: // ... module: { loaders: [ // ... { test: /\.js?$/ , include: [ // path.join(__dirname, '你自己的js文件路径'), // path.join(__dirname, 'node_modules/其他需要babel的第三方库'), path.join(__dirname, 'node_modules/react-native-storage' ) ], loader: 'babel' , query: { cacheDirectory: true , presets: [ 'es2015' , 'stage-1' , 'react' ], plugins: [ 'transform-runtime' ] } } ] }

使用 Taro 快速开发京东小程序

不羁的心 提交于 2020-04-29 17:53:23
近两年来小程序逐渐成为互联网的一个行业风口,一直备受业界关注,各大厂也接踵推出了自己的小程序。近日京东也推出了小程序: 京东小程序 。Taro 作为一款专注于多端统一开发的框架,第一时间对京东小程序进行了适配。接下来就跟着小编一起了解一下如何使用 Taro 快速开发京东小程序吧。 背景 京东小程序 京东小程序平台 是京东自研技术(能力)开放平台,平台集成京东特色功能,串联商家和用户。为用户提供延展服务,给商家带来新机遇。京东小程序平台不仅支持存量自营、POP商家自动开通,还支持新型的非电商领域商家参与小程序生态。 加入京东小程序开放平台的商家,可以利用京东平台完整的营销、交易、支付、会员、物流等能力,更加便捷地构建起自己的特色服务场景。助力商家实现生态场景上的“跃迁”,快速为用户提供一站式服务体验。 京东小程序只需一次开发即可运行在京东 APP、京东金融 APP、京麦 APP 三端。京东 APP、京东金融 APP 会开放特定的能力,对优质小程序还会开放多个高流量入口,包含扫码、搜索、消息等多种方式触达。而京麦 APP 小程序主要用于商家工具插件的开发定制。 Taro Taro 是凹凸实验室推出的一套遵循 React 语法规范的多端统一开发解决方案,也是京东小程序官方推荐的开发框架。 使用 Taro 开发不但能更规范、更有效率地编码, 畅享 React / Vue 生态的各种工具

React Native之持久化存储(AsyncStorage、react-native-storage)的使用

扶醉桌前 提交于 2020-04-29 17:16:00
  AsyncStorage是一个简单的、异步的、持久化的Key-Value存储系统,它对于App来说是全局性的。这是官网上对它的介绍。可以知道,这个asyncstorage也是以键值对的形式进行存储数据的。 1、封装DeviceStorage类 import { AsyncStorage }from 'react-native' ; export default class DeviceStorage{ static get(key) { return AsyncStorage.getItem(key).then((value) => { const jsonValue = JSON.parse(value); return jsonValue; }); } static save(key, value) { return AsyncStorage.setItem(key, JSON.stringify(value)); } static update(key, value) { return DeviceStorage.get(key).then((item) => { value = typeof value === 'string' ? value : Object.assign({}, item, value); return AsyncStorage.setItem

app跨平台开发框架以及技术选型如何选择?

孤人 提交于 2020-04-29 15:11:06
作者:刘望舒 链接:https://www.zhihu.com/question/55714900/answer/665044650 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1. 跨平台技术的诞生 我是2010年开始从事的Android开发,当时会Android和iOS开发的很少,也不火,所有人都在“摸着河底过河”,项目更没有第三方框架一说,大都是自己写的,不像现在各种的框架满天飞。随着移动开发的发展,互联网公司也是层出不穷,有些公司迫于竞争,想要更迅速的更省成本的进行开发,就不再满足Android端一套代码,iOS端一套代码。与此同时,其他技术领域和各大公司也都觊觎着这份大蛋糕,纷纷推出相关的技术,这样跨平台技术应运而生,并且开始在公司中生根发芽。 Android和iOS生态太大了,我们可以把它们比作第一级生态,想要颠覆这两个系统的曾经出现过,但都失败了,因此建立次级生态是最稳妥的策略,Android平台更加开放,因此次级生态的中心就是Android,次生态的形式多种多样,比如在Android系统的基础上魔改建立自己的生态,再或者推出各种跨平台技术建立生态。跨平台技术产生的框架实在太多了,很多还没等我们去学去了解,它们就没落了,成为了跨平台技术的发展的一个过度产物。跨平台技术的产物是不靠谱还是趋势,我想读完本篇文章你会有自己的理解。

FlatList填充满屏幕

你。 提交于 2020-04-29 11:39:54
FlatList inherits ScrollView's props, so solution for ScrollView will work: <FlatList contentContainerStyle={{ flexGrow: 1 }} {...otherProps} /> Here is the original Github issue for above solution. EDIT: The parental Views of FlatList should have flex: 1 in their style. safeAreaView:{ backgroundColor:"#ffffff", flex: 1 }, keyboardAvoidingView:{ flex: 1 }, 来源: oschina 链接: https://my.oschina.net/sfshine/blog/4257977

React Native之配置URL Scheme(iOS Android)

本小妞迷上赌 提交于 2020-04-28 11:02:39
React Native之配置URL Scheme(iOS Android) 一,需求分析 1.1,需要在网站中打开/唤起app,或其他app中打开app,则需要设置URL Scheme。比如微信的是:weixin:// 二,URL Scheme介绍 2.1,URL Scheme是什么? URL Scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。 苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的。但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便app之间互相调用而设计的。 URL Scheme必须能唯一标识一个APP,如果你设置的URL Scheme与别的APP的URL Scheme冲突时,你的APP不一定会被启动起来。因为当你的APP在安装的时候,系统里面已经注册了你的URL Scheme。 2.2,URL Scheme应用场景 客户端应用可以向操作系统注册一个 URL scheme,该 scheme 用于从浏览器或其他应用中启动本应用。通过指定的 URL 字段,可以让应用在被调起后直接打开某些特定页面,比如商品详情页

构建flutter环境并实现属于我们的hello world

╄→гoц情女王★ 提交于 2020-04-28 07:24:21
我们知道flutter和react-native一样,都是既可以运行在andorid也可以运行在iOS环境下的。 我之前是react-native开发者,我的电脑环境中已经安装好了jdk,sdk,以及android studio环境,并且可以使用安卓模拟器以及测试机进行开发。 下面是我的安装的版本 接下来我们来进行flutter的安装 flutter官网: https://flutter.dev/docs/get-started/test-drive 我是在windows环境下进行安装的 下载软件 我将下载的内容放在 运行软件 额,在flutter的issue中找到了一个解决的方法 运行这些之后,还是不行 我就直接把c盘中的那个tools拷贝到了d盘软件sdk目录下面 再次运行,他会有一个是否接受这个licences 点击y就行 关于flutter和Dart的安装,我们在android studio中是这样进行的 我下面的是动图,以相同的方法安装Dart,因为我安装过了,没有install按钮,你们应当点击Install安装 接下来我们是使用vscode写我们的第一个demo 然后直接运行项目 我有测试机连着电脑,故可以看到 我点击完成 会在页面上直接运行出一个点击按钮,点击次数会增加 但是我不喜欢测试机,那么我们试试如何在vscode编辑器中运行出这个demo

react-native路由总结

落爺英雄遲暮 提交于 2020-04-26 15:14:23
安装 npm install @react - navigation / native npm install @react - navigation / stack npm install @react - navigation / bottom - tabs npm install @react - navigation / material - top - tabs react - native - tab - view npm install react - native - reanimated react - native - gesture - handler react - native - screens react - native - safe - area - context @react - native - community / masked - view 配置 把下面两行代码添加到react项目的android/app/build.gradle中的dependencies部分 implementation 'androidx.appcompat:appcompat:1.1.0-rc01' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02' 堆栈导航