Ionic2的数据存储

nickking 2017-12-01

Ionic2的数据存储

翻译2017年03月29日14:50:51

当在一个原生app词法环境下,一般优先使用SQLite,因为它是使用最广泛的稳定的文档型数据库之一,它也避免了一些诸如localstorage和IndexedDB的一些困境,比如系统在磁盘空间不够的时候会清除数据。

如果你是在web中或者webapp中运行的话,一般倾向于使用IndexedDB,WebSQL,以及localstorage.

假如你使用的是SQLite,首先你得安装cordova-sqlite-storage插件。

cordovapluginaddcordova-sqlite-storage--save

1

然后npm按照包:

npminstall--save@ionic/storage

1

之后import这个插件,在你的NgModule的imports的数组中,将模块注入进app里。

下面就是一个实例:

import{IonicStorageModule}from'@ionic/storage';

@NgModule({

declarations:[

//...

],

imports:[

IonicModule.forRoot(MyApp),

IonicStorageModule.forRoot()//就这里

],

bootstrap:[IonicApp],

entryComponents:[

//...

],

providers:[]

})

exportclassAppModule{}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

这样,你如果在那个component中需要使用数据库的时候你就可以通过import进行注入:

import{Storage}from'@ionic/storage';

exportclassMyApp{

constructor(storage:Storage){

storage.ready().then(()=>{

//setakey/value

storage.set('name','Max');

//Ortogetakey/valuepair

storage.get('age').then((val)=>{

console.log('Yourageis',val);

})

});

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

配置存储

开发者可以使定义好的存储引擎优先级配置存储引擎,或者自定义配置选项到localForage上。

注意:任何自定义的配置都会被合并到默认配置上。

import{IonicStorageModule}from'@ionic/storage';

@NgModule({

declarations:...,

imports:[

IonicStorageModule.forRoot({

name:'__mydb',

driverOrder:['indexeddb','sqlite','websql']

})

],

bootstrap:...,

entryComponents:...,

providers:[]

})

exportclassAppModule{}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

下面就是数据库的使用方法:

driver获取驱动名称

ready()反应存储

get(key)获取对应数据

set(key,value)设置数据

remove(key)删除对应数据

clear()清除所有数据

length()获取数据长度

keys()获取键

forEach(callback)遍历数据库

相关推荐