Giter VIP home page Giter VIP logo

react-diode's Introduction

Diode

Build Status codecov.io

Endpoint agnostic, unidirectional data fetching for React application

Motivation

We love Relay, but converting all of our APIs into GraphQL takes time. and some APIs are still awkward to be expressed into GraphQL schema (for example our translation API). So we built Diode by taking what's best from Relay and removing what doesn't work for us.

Diode is an early project, expect breaking changes every (minor) version update.

Features

  • Unidirectional

    Data requirement flows one direction from child component to parent component so root component will know all data the child need. No more confusion where the data comes from (or what component should fetch what data) as root component data is the only source of truth.

  • Declarative

    Declare your data requirements declaratively, no need to manually call API in componentDidMount and use this.state to store data from server. All your data in component will be available as props.

  • Colocation

    Query next to views that rely on them. See your data requirement in the same place that your view resides.

  • Endpoint agnostic

    Every query will have its own endpoint and configuration on how to call them. You can use any HTTP-based endpoint, including REST and yes, GraphQL.

Install

$ npm install react-diode

Usage example

See /examples directory

License

MIT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.