reactjs / react-future

Specs & docs for potential future and experimental React APIs and JavaScript syntax.
2.82k stars 113 forks source link

The Future of React(?)

Welcome to the potential future of React projects. This repo is showcasing example code for APIs that we have not yet implemented nor agreed on. Its purpose is to provide a platform for discussing future changes. It also provides a shared goal so that we can figure out how to incrementally get to our ideal API.

Structure

You'll notice that the files in this repo are structured by numbered files. More stable proposals have lower numbers and more comments. Higher level proposals are built on top of these. You're expected to be familiar with the core proposals before reading the higher level examples.

Core

  1. [Classes](./01 - Core/01 - Classes.js)
  2. [Mixins](./01 - Core/02 - Mixins.js)
  3. [Stateless Functions](./01 - Core/03 - Stateless Functions.js)
  4. [Modules](./01 - Core/04 - Modules.js)
  5. [Elements](./01 - Core/05 - Elements.js)
  6. [Refs](./01 - Core/06 - Refs.js)
  7. [Imperative Bridge](./01 - Core/07 - Imperative Bridge.js)

Web Components

Animations

Layout

  1. [Primitives](./04 - Layout/01 - Primitives.js)
  2. [Layout Components](./04 - Layout/02 - Layout Components.js)
  3. [Usage](./04 - Layout/03 - Usage.js)
  4. [Inline Styles](./04 - Layout/04 - Inline Styles.md)

Workers

  1. [Serializable Elements](./05 - Workers/01 - Serializable Elements.js)
  2. [Nested Components](./05 - Workers/02 - Nested Components.js)

Embedded Queries

Returning State

  1. [Stateful Functions](./07 - Returning State/01 - Stateful Functions.js)
  2. [Module Pattern](./07 - Returning State/02 - Module Pattern.js)
  3. [Default Props and Initial State](./07 - Returning State/03 - Default Props and Initial State.js)

Types

  1. [Elements](./08 - Types/01 - Elements.js)
  2. [DOM Elements](./08 - Types/02 - DOM Elements.js)

Syntax

The language syntax used here is using a hypothetical future JavaScript syntax. It's a mix of ECMAScript 6, proposals for ECMAScript 7, TypeScript and JSX. The idea is that it should be proposals that have a legitimate chance of being standardized.

Contribute

Would you like to take part of the discussion? Open up an issue or pull request.