react-native-store, 在响应原生AsyncStorage时,一个简单的数据库库

分享于 

4分钟阅读

GitHub

  繁體 雙語
A simple database base on react-native AsyncStorage.
  • 源代码名称:react-native-store
  • 源代码网址:http://www.github.com/thewei/react-native-store
  • react-native-store源代码文档
  • react-native-store源代码下载
  • Git URL:
    git://www.github.com/thewei/react-native-store.git
    Git Clone代码到本地:
    git clone http://www.github.com/thewei/react-native-store
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/thewei/react-native-store
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

    react-native-store

    Build Statusnpm versionNPM downloads

    一个基于本地AsyncStorage的简单数据库。

    安装

    $ npm install react-native-store --save

    从以前的版本升级至? 检查中断更改。

    数据解剖学

    
    db_store
    
    
     |---model_name
    
    
     |---totalrows (variable)
    
    
     |---autoinc (variable)
    
    
     |---rows (array)
    
    
     |--- _id (number)
    
    
     |---.. ..
    
    
    
    
    

    API

    • 模型( modelName ): 返回一个 Model 对象
    • Model.add( data, filter ): 返回 promise 对象
    • Model.update( data, filter ): 返回 promise 对象
    • Model.updateById( data, id ): 返回 promise 对象
    • Model.remove( filter ): 返回 promise 对象
    • Model.removeById( id ): 返回 promise 对象
    • Model.find( filter ): 返回 promise 对象
    • Model.findById( id ): 返回 promise 对象
    • Model.get( filter ): 返回 promise 对象
    • Model.destroy(): 返回 promise 对象

    简单示例

    importStorefrom'react-native-store';constDB= {
     'foo':Store.model('foo'),
     'bar':Store.model('bar')
    }// somewhere inside react componentscomponentDidMount() {
     // Return all itemsDB.foo.find().then(resp=>this.setState({items: resp}));
    }handleFilter(itemName) {
     DB.foo.find({
     where: {
     and: [{ foo: { neq: itemName } }, { age: { gte:5 } }]
     },
     order: {
     age:'ASC',
     }
     }).then(resp=>this.setState({items: resp}));
    }handleOnPress() {
     DB.bar.add({
     foo:'foo',
     bar:'bar',
     age:12 });
    }

    高级筛选

    筛选为查询添加更高级的逻辑。 这个实现很严重地基于的环回实现。 但是,有一些重要的事情是不同的/漏掉的:

    英镑注释:在条目内嵌套的对象的查询操作不完全。 例如尝试更新一个类似于以下内容的条目:

    {
     location: { name:'place', distance:'far' }
    }

    以这里作为筛选器的值:

    {
     location: { name:'place' }
    }

    将覆盖 location的值,有效地移除 distance 属性。 顺序和字段筛选器类似,这种情况类似,因为你只能对未嵌套在对象中的值应用筛选器。

    • fork 这里 repo
    • 克隆你的repo
    • 通过 $ npm install 安装依赖
    • 签出分支
    • 请随意添加你的功能
    • 确保你的功能已经完全测试
    • 发布本地分支,打开请求请求
    • 享受黑客 <3

    数据  BASE  react  NAT  Native  async  
    相关文章