[TOC]
当在本机应用程序上下文中运行时,Storage将优先使用SQLite,因为它是最稳定和最广泛使用的基于文件的数据库之一,并且避免了诸如localstorage和IndexedDB之类的一些陷阱,例如操作系统决定清除低磁盘空间情况下的此类数据。
在Web中运行或作为Progressive Web App运行时,Storage将尝试按顺序使用IndexedDB,WebSQL和localstorage。
## 用法
首先,如果您想使用SQLite,请安装cordova-sqlite-storage插件:
~~~
ionic cordova plugin add cordova-sqlite-storage
~~~
接下来,安装软件包(默认情况下为Ionic应用程序> Ionic V1提供):
~~~
npm install --save @ionic/storage
~~~
接下来,将其添加到`NgModule`declaration中的导入列表中(例如,在`src / app / app.module.ts`中):
~~~
import { IonicStorageModule } from '@ionic/storage';
@NgModule({
declarations: [
// ...
],
imports: [
BrowserModule,
IonicModule.forRoot(MyApp),
IonicStorageModule.forRoot()
],
bootstrap: [IonicApp],
entryComponents: [
// ...
],
providers: [
// ...
]
})
export class AppModule {}
~~~
最后,将其注入您的任何组件或页面:
~~~
import { Storage } from '@ionic/storage';
export class MyApp {
constructor(private storage: Storage) { }
...
// set a key/value
storage.set('name', 'Max');
// Or to get a key/value pair
storage.get('age').then((val) => {
console.log('Your age is', val);
});
}
~~~
### 配置存储
可以使用特定存储引擎优先级配置存储引擎,也可以将自定义配置选项配置为传递给localForage。有关可能的选项,请参阅localForage配置文档:[https://github.com/localForage/localForage#configuration](https://github.com/localForage/localForage#configuration)
注意:任何自定义配置都将与默认配置合并
~~~
import { IonicStorageModule } from '@ionic/storage';
@NgModule({
declarations: [...],
imports: [
IonicStorageModule.forRoot({
name: '__mydb',
driverOrder: ['indexeddb', 'sqlite', 'websql']
})
],
bootstrap: [...],
entryComponents: [...],
providers: [...]
})
export class AppModule { }
~~~
## 实例成员
### constructor
使用驱动程序顺序创建新的Storage实例,并将任何其他配置选项传递给LocalForage。
可能的驱动程序选项是:\ ['sqlite','indexeddb','websql','localstorage'\],默认是精确排序。
### driver
获取正在使用的驱动程序的名称。
### clear()
清除整个键值存储。警告:热!
**返回:**返回清除商店时解析的承诺
### forEach()
遍历每个键值对。
**返回:**返回迭代完成时解析的promise。
#### 参数
##### iteratorCallback
表单的回调(value,key,iterationNumber)
### get()
获取与给定键关联的值。
**返回:**返回具有给定键值的promise
#### 参数
##### 键
**型号:**`string`
识别这个价值的关键
### keys()
**返回:**返回使用商店中的键解析的promise。
### length()
**返回:**返回一个使用存储的密钥数解析的promise。
### ready()
反映商店的准备情况。
**返回:**返回在商店准备就绪时解析的承诺
### remove()
删除与此键关联的任何值。
**返回:**返回在删除值时解析的promise
#### 参数
##### 键
**型号:**`string`
识别这个价值的关键
### set()
设置给定键的值。
**返回:**返回在键和值ar时解析的promise
- 入门
- 介绍
- 什么是Ionic Framework?
- 核心概念
- 浏览器支持
- 版本
- 支持
- 安装
- CLI安装
- 程序包和CDN
- 环境设置
- iOS安装
- Android安装
- 建造项目
- 开始
- 创建
- 项目迁移
- 跨平台
- 运行概述
- 在iOS上运行
- 在Android上运行
- 测试
- 做出贡献的
- web视图
- ionic存储
- 布局
- 结构体
- 响应式网格
- CSS实用工具
- 主题化
- 基本
- 平台样式
- CSS变量
- 高级
- 导航
- Angular
- 编译和发布
- 渐进式Web应用程序
- iOS App Store
- Android Play商店
- PC桌面应用程序
- 常问问题
- 名词解释
- 构建错误 Build Errors
- 运行时错误 Runtime Errors
- 本机错误 Native Errors
- 开发人员提示 Developer Tips
- 更多资源
- 书籍
- 课程
- 实战项目
- 帖子
- 工具
- 视频
- UI组件
- 弹出式菜单 ion-action-sheet
- 弹出菜单控制器 ion-action-sheet-controller
- 弹出式菜单 ion-action-sheet
- 弹出警告 ion-alert
- 弹出警告控制器 ion-alert-controller
- 命令行 CLI
- 原生API
