Redux: Ejemplos del mundo real (incluidos CRUD, patrones avanzados, etc.)

Creado en 2 feb. 2016  ·  45Comentarios  ·  Fuente: reduxjs/redux

Originalmente inspirado por el tweet de Dan .

TL; DR : nos encantaría financiar la creación / revisión de código / pedagogía de una aplicación Redux completa que cubra casos de uso del mundo real que se alojarían en este repositorio, así como en un curso de Thinkster.io . El texto y el código del curso serían de código abierto (estamos pensando en CC y MIT, respectivamente), por lo que este conocimiento no estará bloqueado detrás de un muro de pago.

Escribir ejemplos enriquecidos lleva mucho tiempo y requiere puntos finales de API en los que se pueda escribir (entre otras cosas). Sin embargo, es algo que creo que es realmente importante para garantizar que los desarrolladores tengan un buen marco de referencia al crear sus aplicaciones. También tenemos muchos de nuestros usuarios que solicitan este tipo de manual sobre Redux y, como tal, estamos felices de financiar su creación.

Me encantaría escuchar cualquier idea que tengas sobre esto y si estás interesado en trabajar en ello.

examples

Comentario más útil

Me encantaría tener un ejemplo oficial de CRUD que maneje:

  • Autenticación
  • Normalización
  • Actualizaciones optimistas
  • Edición local
  • Relaciones entre entidades
  • Paginación

Si desea crear un curso en torno a esto, es increíble. Sin embargo, creo que es importante que el ejemplo en sí se contribuya a este repositorio para que podamos mantenerlo y mantenerlo actualizado con los últimos cambios. Por lo tanto, debe ser coherente con el sistema de compilación y las convenciones que usamos en los ejemplos existentes.

¿Esto tiene sentido?

Todos 45 comentarios

Me encantaría tener un ejemplo oficial de CRUD que maneje:

  • Autenticación
  • Normalización
  • Actualizaciones optimistas
  • Edición local
  • Relaciones entre entidades
  • Paginación

Si desea crear un curso en torno a esto, es increíble. Sin embargo, creo que es importante que el ejemplo en sí se contribuya a este repositorio para que podamos mantenerlo y mantenerlo actualizado con los últimos cambios. Por lo tanto, debe ser coherente con el sistema de compilación y las convenciones que usamos en los ejemplos existentes.

¿Esto tiene sentido?

También me encantaría ver dónde obtienen las personas los datos de las API.

@gaearon, el contenido / código será de código abierto, así que no hay problema. Solo pediríamos un enlace a nosotros en algún lugar de la página :) (editar - también es preferible para nosotros usar el sistema de compilación / convenciones existentes)

@sebastiandeutsch, ¿puedes dar más detalles sobre esto?

Hace un tiempo comencé a jugar con la escritura de un administrador de contraseñas usando react + redux, monogram y eccrypto . Almacene contraseñas y compártalas todas sin tener que enviarlas por cable de forma no cifrada mediante ECIES. Nunca llegué a terminarlo, pero podría satisfacer todos los elementos en https://github.com/rackt/redux/issues/1353#issuecomment -178760036. ¿Suena interesante?

@ vkarpov15

Esto suena muy interesante, pero me temo que es demasiado específico del dominio. La mayoría de la gente querrá ver un ejemplo general de CRUD (listas de elementos editables que se pueden vincular a elementos, etc.), y me temo que un enfoque criptográfico podría hacer que el ejemplo sea menos accesible.

Estoy muy interesado en la edición local / fuera de línea con actualizaciones optimistas, tengo algo de tiempo pero no tengo tanta experiencia con la aplicación redux, solo obtuve una aplicación nativa compleja, pero casi completamente local / fuera de línea.
¿Quizás podríamos escribir un repositorio y trabajar en él y discutir gradualmente?
También, ¿qué pasa con las aplicaciones "modulares"?
Solo para compartir algunas ideas, escribí algunas ideas sobre cómo creo que debería ser la primera aplicación sin conexión, ¡pruébalo si tienes tiempo para dedicarlo! :)

https://github.com/jsforum/jsforum/issues/7

No estoy seguro de cuán extendido es el problema y cuál es el nivel objetivo de los desarrolladores para este curso, pero me gustaría ver en algún lugar de la red cómo diseñar componentes de aplicaciones complejos implementados en react + redux (como un formulario de varios pasos o un asistente con estado controlado por varios reductores) por lo que son reutilizables como un todo en otra aplicación.

@sompylasar No dude en crear un problema sobre esto en el repositorio de React Redux. Me complace discutir los enfoques para reutilizar o aislar el componente compatible con Redux allí.

Si está buscando un ejemplo de crud para principiantes, siempre hay todo-mvc y el ejército de tutoriales de "comenzar con babel + redux + react + webpack". No estoy seguro de que tenga mucho valor para otro, termino leyendo un par de publicaciones de blog nuevas sobre el tema cada semana (¿pero tal vez podrías crear una aplicación que genere automáticamente estos tutoriales?: P). Yo diría que un tutorial de nivel más intermedio valdría más la pena, y en mi opinión, aprender sobre criptografía podría ser un beneficio secundario atractivo.

No estoy buscando un ejemplo de nivel principiante, pero las partes complejas de CRUD (paginación, normalización, actualizaciones optimistas, relaciones) deberían ser el foco del ejemplo.

¿Consumiría esto una API personalizada o existente? ¿O combinación?

Ésta es la pregunta difícil. No sé. La API de Github puede ser una buena idea, ya que se puede escribir y los conceptos son familiares para todos. Sé que @ryanflorence trabajó en algo similar.

Definitivamente apuntando a desarrolladores intermedios-avanzados con esto; los tutoriales para principiantes se han saturado y rara vez cubren los temas más difíciles (del mundo real) que Dan enumeró anteriormente.

Estoy abierto a API personalizadas y / o existentes; estaremos encantados de alojar cualquier API personalizada en nuestra cuenta de aws. También tenemos una API completa para un clon de Medium.com que estamos construyendo para algunos otros cursos que podríamos usar, el código fuente de backend también estaría disponible para él si la gente tuviera curiosidad. Feliz de compartir detalles si eso suena interesante.

@EricSimons Me encantaría saber más sobre el clon Medium.

@cshenoy Seguro. Estamos construyendo un curso JS fullstack que tendrá React / Redux como frontend y Node como backend. Tendremos la API de backend alojada de forma independiente para las personas que no quieran ejecutarla localmente, por lo que podría ser una buena opción para enseñar algunos de los temas más complejos anteriores. El conjunto de funciones para el clon medio incluye lo siguiente:

  • Autenticación (correo electrónico / contraseña y oAuth, JWT)
  • CRUD para publicaciones de blog y comentarios sobre publicaciones de blog
  • Siguiendo a los usuarios
  • Alimentación global de todos los blogs y alimentación de los blogs de los usuarios que sigues
  • Sistema de etiquetado
  • Perfiles de usuario / editar información de perfil

La ETA en la base de código final es para fines de esta semana, así que tendré más información para entonces. Hemos diseñado todo para que sea súper modular, por lo que agregar funciones adicionales sería trivial.

Las hojas de tiempo (rastreadores de tiempo) realmente ejercitan muchos aspectos complejos de flux / redux y crud. La paginación y el almacenamiento en caché son necesidades obvias a medida que recorre los días y las semanas de un lado a otro. También existen muchas API que se pueden escribir. También implica mucho más que solo el seguimiento del tiempo. Gestión de usuarios, entidades de proyectos, etc.

Creo que esto sería genial. He luchado un poco con eso, especialmente con la parte de creación. Por ejemplo, suponga que tiene un componente ArticlePage que crea nuevos artículos como este:

// shortened version

import { addArticle } from '../actions'

function doAddArticle(props, handleAdded, values, dispatch) {
  props.addArticle(values)
  .then(handleAdded)
}

class AddArticlePage extends Component {
  handleAdded = () => {
    this.props.pushState(null, '/articles/')
  };

  render() {
    return (
      <div>
        <ArticleForm submit={(values, dispatch) => doAddArticle(this.props, this.handleAdded, values, dispatch)} />
      </div>
    )
  }
}

function mapStateToProps(state) {
  return {}
}

export default connect(mapStateToProps, {
  pushState,
  addArticle
})(AddArticlePage)

  1. Ni siquiera estoy seguro de si es lo "correcto" hacer para encadenar la promesa resuelta de realizar la redirección.
  2. ¿Qué pasa si quiero obtener la ID del artículo recién creado y en lugar de redirigir a la página de índice, quiero redirigir a la página /articles/{id}/ ?
  3. ¿Qué pasa si mi componente quiere el resultado de la acción asincrónica? Para mí, esto surgió dentro de mi componente ArticleForm con un campo de formulario de carga de imagen: envío una acción "addImage" y cuando la imagen se ha cargado, quiero 1) mostrar una vista previa de la imagen cargada según la URL y 2) quiero Asignar la URL al formulario. Pero me resultó difícil averiguar cuál era la mejor manera de hacer esto en Redux. El problema que encontré fue que necesita poder mapear el estado / imagen recién agregado a un accesorio en el componente de formulario, pero 1) cómo obtiene la imagen recién agregada y 2) ¿qué pasa si hay 2 imágenes subiendo simultáneamente, cómo ¿Obtiene la URL de imagen correcta para el componente correcto?

Por supuesto, solo he estado haciendo Redux -ing durante unos meses, por lo que pueden ser problemas tontos, pero como principiante definitivamente me hicieron tropezar y todavía no siento que mis soluciones sean el "camino correcto".

@jonathaningram, ¿has mirado redux-thunk? Como alternativa a lo que está haciendo arriba, le permitiría enviar desde dentro de su acción

@babsonmatt sí, ya lo estoy usando. Basé la aplicación en el ejemplo del mundo real que la usa. Sin embargo, tal vez no lo esté usando en todas sus capacidades.

@jonathaningram Gracias por tu ejemplo. Como se señaló, debe mover la lógica de redireccionamiento al procesador del creador de la acción y enviar la actualización de la ruta desde allí. Hay más formas de manejar los efectos secundarios (la redirección es un efecto secundario de la transición de estado causada por esa acción), como redux-saga o redux-side-effects. Pero creo que la discusión profunda está fuera del alcance de este tema.

@sompylasar gracias. Sí, no quiero desviar el tema, solo quería compartir mis experiencias del "mundo real" como principiante de redux, lo que con suerte ayuda a los nuevos ejemplos que surgen de este problema.

@EricSimons Estoy interesado en ayudar. Actualmente estoy manteniendo una aplicación CRUD usando nuclear-js y creo que muchas de sus ideas se traducirían bien en redux. Avísame si quieres hacer una lluvia de ideas.

Recientemente comencé un proyecto para la gestión del estado CRUD (sobre REST). Viniendo de Marionette/Backbone Realmente extrañé las convenciones REST cuando comencé a excavar en React / Redux.

https://github.com/masylum/resting-ducks

No estoy seguro de si la solución son ejemplos. Creo que las bibliotecas funcionan mejor para eso. La gestión estatal es casi siempre la misma, en 2016 no deberíamos estar escribiendo código CRUD sino centrados en nuestra lógica empresarial.

@EricSimons Actualmente estoy evaluando diferentes opciones donde especificar las necesidades de datos y cuándo buscar datos. Una opción sería implementar algo de Relayish, pero tengo la sensación de que es un poco exagerado. Algo que he inventado para un proyecto es especificar mis necesidades de carga en las rutas con un atributo de cargador:

let routes = <Route path='/' component={Layout}>
  <IndexRoute component={BooksIndex} />
  <Route path='/book/new' component={BooksNew} />
  <Route path='/book/:id' component={BooksShow} loader={BooksLoader} />
  <Route path='/book/:id/edit' component={BooksEdit} loader={BooksLoader} />
</Route>;

BooksLoader es una clase que implementa dos funciones:

  • needToSyncStore (params, store) devuelve verdadero si la tienda necesita sincronizarse, de lo contrario es falso
  • syncStore (params, store) sincronizará la tienda y devolverá una promesa

Aquí hay una implementación de ejemplo muy básica que definitivamente puede ser reemplazada por algo más inteligente (por ejemplo, ImmutableJS / Map):

import _ from 'lodash';
import * as Actions from 'actions';
import API from 'api';

export default class BooksLoader {
  needsToSyncStore(params, store) {
    let books = store.getState().books;

    if(books) {
      const book = _.findWhere(books.collection, { isbn: params.id });
      if(book) {
        return false;
      }
    }

    return true;
  }

  syncStore(params, store) {
    let { dispatch } = store;
    let api = new API();

    let loadBooks = Actions.loadBooks();
    return loadBooks(dispatch, store.getState);
  };
}

La idea es que un cargador solo se preocupa por el estado proporcionado por una ruta y el árbol de estado redux que facilita la prueba.

La siguiente pieza es un cargador de tienda que es un componente de reacción fuertemente inspirado en @ryanflorence AsyncProps (https://github.com/rackt/async-props) que se puede usar como RenderContext de ReactRouter: https: //gist.github. com / sebastiandeutsch / e6148ca0741cc355248c

Está comprobando las rutas de ReactRouter en busca de cargadores y ejecutándolos. También expone el estado de carga a través de contextos. En acción, se vería así:

<Provider store={store}>
  <Router
    history={browserHistory}
    render={(props) => (
      <StoreLoader {...props} store={store} />
    )}>
      {routes}
    </Router>
</Provider>

En un componente de ruta (estos son componentes especiales que son hijos directos del enrutador) puedo usar el contexto de esta manera:

export class BooksShow extends React.Component {
  static contextTypes = {
    storeIsSynchronized: React.PropTypes.bool
  };
  ...
  render() {
    const { book } = this.props;

    if(this.context.storeIsSynchronized) {
      /* display components */
    } else {
      /* display loading spinner */
    }
}

export default connect(
  (state, props) => {
    return {
      book: _.findWhere(state.books.collection, { isbn: props.params.id } )
    }
  },
  (dispatch) => ({
    actions: bindActionCreators(Actions, dispatch)
  })
)(BooksEdit);

@gaearon ¿Qué opinas de estas ideas?

@sebastiandeutsch Me gusta ese enfoque. Yo también estoy experimentando con Async-Props, tus ideas aquí se ven realmente geniales.

Imaginé que se suponía que el ejemplo era más general en lugar de estar diseñado en torno a una abstracción para la obtención de datos. Realmente me gusta https://github.com/optimizely/nuclear-js/tree/master/examples/rest-api como un ejemplo básico de una manera fácil de configurar tiendas y acciones para las API de Rest.

Lo extendí para admitir el almacenamiento en caché e incluso almacenar solicitudes en curso en una tienda (de modo que si la solicitud se vuelve a realizar, la persona que llama simplemente obtiene un aplazamiento en lugar de reiniciar el xhr. Un ejemplo más sólido de lo que estoy hablando está aquí : https://github.com/jordangarcia/nuclear-api-module-example/tree/master/rest_api. Y he copiado algunos de los conceptos de @jordangarcia con gran éxito. Creo que los enfoques aquí podrían funcionar bien con redux también (acompañado de normalizr, etc.).

@EricSimons es el problema más sobre el tema y la búsqueda de buenas API de escritura o ¿está buscando enfoques específicos?

Lo que más me interesa es el tema (en el peor de los casos, podemos alojar nuestras propias API grabables para que las use la gente). Muchas gracias a todos los comentaristas anteriores por cierto, esta discusión ha sido fantástica hasta ahora. Me encantaría escuchar más pensamientos / ideas sobre lo que deberíamos cubrir en estos ejemplos.

Para su información @ dan-weaver y otros interesados ​​en trabajar en esto, no dude en enviarme una nota [email protected]

En el mundo de Meteor, hay un gran proyecto de ejemplo de código abierto que se originó a partir de un libro sobre Meteor. Este proyecto es Telescope , que es una aplicación web similar a Reddit o Hacker News. Si Redux tuviera un ejemplo similar, sería genial. Muchos desarrolladores aprendieron Meteor al seguir el libro y construir una versión más pequeña de Telescope junto con él. Una aplicación como Telescope cubriría todos los temas planteados por Dan en una aplicación con la que la mayoría de los desarrolladores ya están familiarizados (debido a Hacker News, Reddit, ..).

Comencé a crear la base para una aplicación similar hace unos meses en webapp *. Este proyecto tiene el proceso de compilación, módulos css, autenticación, un servidor separado para la API, MongoDB, renderización del lado del servidor, GraphQL y más ya configurados (aunque algunas cosas pueden estar un poco desactualizadas, necesitan más trabajo o podrían hacerse mejor). Además, tiene un reductor dividido, algo que creo que ningún otro ejemplo tiene. Las grandes cosas que le faltan son buenas soluciones para la búsqueda de datos, actualizaciones optimistas, datos en tiempo real. Además, está un poco desactualizado, ya que 2 meses parecen una eternidad en lo rápido que está progresando todo en este momento :)

Si desea un punto de partida para crear el ejemplo del curso, tal vez _webapp_ podría ser una inspiración. Y me encantaría ver algo similar a Telescope hecho en Redux.

* _La carpeta de


_Sidenote: _ Debido a que noté que Redux no tiene una historia para la búsqueda de datos, actualmente estoy creando un sistema similar a Relay que se integra con Redux. Esa es la razón por la que no he actualizado _webapp_ durante 2 meses. En caso de que tenga éxito con la creación de ese sistema, continuaré _webapp_ con él.

Un problema al que se enfrenta es que Redux es de muy bajo nivel y, por lo tanto, no tiene opiniones acerca de cómo _realmente_ construye una aplicación a su alrededor. Por lo tanto, no estoy seguro de si podemos simplemente mantener _una_ base de código de ejemplo para aprender, ya que hay tantas abstracciones válidas posibles _entre_ redux y la interfaz de usuario final. Esto se ejemplifica en parte de la discusión en este hilo donde se presentan muchas posibilidades diferentes para la carga de datos sin un ganador claro: no hay una forma correcta ya que las escalas de aplicación difieren enormemente.

Por esta razón, es deseable crear "_The_ Advanced TODOMVC of Redux" con una especificación que requiera todas las características avanzadas que Dan ha mencionado anteriormente.

A medida que avancemos, creo que comenzaremos a ver más abstracciones / bibliotecas / marcos _alrededor de_ Redux que podrían usar esta aplicación avanzada como prueba de concepto. De hecho, con el tiempo, esto puede cambiar de nombre para que no sea específico de Redux.

En el frente de la API, me encantaría que siga algún tipo de estándar ( JSON-API proporciona una base excelente para la desnormalización y la descripción de relaciones) y, finalmente, tenga un servidor GraphQL frente a esto.

En cuanto a cómo se estructura esto como una comunidad, sospecho que podríamos tener un repositorio central que contenga la especificación de la aplicación, la implementación del servidor, así como una lista / tabla de comparación de todas las implementaciones actuales.


En un lado, pero parcialmente relacionado, tenga en cuenta el tema específico aquí que creo que haríamos bien en priorizar este tema para aclarar el alcance de Redux, enfatizando la naturaleza de bajo nivel.

PD. Próximamente tengo una charla sobre "Real World Redux" en React London (donde espero tener tiempo para explorar los problemas más avanzados), así que ten cuidado con eso: D

Estaría dispuesto a trabajar en esto, creo que proporcionar a los recién llegados una aplicación Redux utilizable, comentada y explicada que no es una lista de tareas pendientes es una gran idea. ¿Ha comenzado algún trabajo en esto @EricSimons?

Parece haber muchas preguntas similares sobre cómo reducir el texto estándar de redux y construir algo del mundo real con él. Creo que encontré una solución bastante buena (entre otras cosas) sobre la que escribí aquí:

https://medium.com/@timbur/react -automatic-redux-proveedores-y-replicadores-c4e35a39f1

TL; DR: Puede crear proveedores redux que se correspondan automáticamente con sus componentes en función de sus propTypes . Todo lo que realmente necesita es un directorio components , un directorio providers y un directorio themes opcional pero recomendado. Todo es fácilmente intercambiable, comprensible, mantenible, ampliable y reutilizable. Hay mucho más incluido con todo eso, como la recarga en caliente tanto del cliente como del servidor, renderizado del servidor, etc., etc. Normalmente tardaría 1 hora. :)

Hablando por experiencia como adoptante de reacción temprana, prefiero no usar la API de Github en un ejemplo.

  • Su autenticación es demasiado complicada para alguien que busca algo que "simplemente funciona".
  • No es adecuado para experimentar. Para evitar ser destructivo al hacer mutaciones de API, tendría que crear una cuenta de Github separada / desechable.

En su lugar, utilice una API personalizada simple. No queremos depender de terceros y permitir que cualquiera ejecute su propia instancia como mi ejemplo de BottledAPI (wip) en json-server .

Esto también permitiría otras implementaciones de backend de descanso en Javascript, Java, C #, PHP, etc. Esto ayudaría a impulsar el desarrollo, ya que es bastante llave en mano.

Por cierto, en el enlace de mi comentario anterior, hay detalles sobre cómo crear una aplicación de blog. Estoy planeando agregar la autenticación de usuario y todo eso dentro de la próxima semana.

¡Hola tios! Estoy estudiando ReactJS y desarrollé una versión de mi acortador de URL personal usando React + Redux. Mi ejemplo usa Gulp + Browserify + Babelify para el desarrollo de frontend. Escribí pruebas unitarias usando Mocha y Enzyme para componentes y acciones. Este ejemplo también tiene:

  • Operaciones de creación, lectura y actualización
  • Autenticación con Json Web Token
  • Paginación
  • Etiquetas
  • CORS

Hay algunos errores en la interfaz y la usabilidad. Pero está funcionando =)
Quizás alguien pueda usarlo como base para un ejemplo del mundo real.

Demostración: https://gustavohenrique.github.io/gh1
Fuente: https://github.com/gustavohenrique/gh1

Acepto sugerencias sobre cómo mejorar este ejemplo. ¡Gracias!

Un poco tarde para la fiesta, pero acabo de lanzar una aplicación web de gestión completa que se basa en Redux.

Usamos redux-thunk para trabajos asincrónicos y redux-ignore, que proporcionó una mejora sorprendente (_en dispositivos móviles_), simplemente filtrando nuestros reductores de nivel superior.
La aplicación web es 100% sensible, por lo que es fácil de usar / probar en dispositivos móviles.

Gestionamos actualizaciones optimistas "deshaciendo" la acción anterior. Los reductores afectados saben cómo rastrear su camino de regreso a su estado anterior, por lo que es bastante aislado y eficiente.

De todos modos, aquí están los enlaces http://www.handy-erp.com/en/
Simplemente cree una cuenta y elimínelos.

@SebastienDaniel ¡Felicidades! es un hermoso sitio web. ¿Pusiste la parte de redux en algún repositorio público?

Gracias @gustavohenrique
Desafortunadamente no, la fuente no está en un repositorio público. Sin embargo, estoy bastante abierto a usar la fuente para ayudar a cubrir cualquier pregunta o tal vez crear demostraciones para ayudar a la comunidad.

Realmente me gustaría ver ejemplos de modularidad. Si está creando una aplicación con una gran cantidad de funciones, realmente busca una forma de crear módulos de responsabilidad única. Mejor para los equipos, mejor para la mantenibilidad.

Primero, ¡gracias por compartir código! @Gustavohenrique
Otras cosas:
Creo que puede ser una lista de usuarios. ¿acceso? Registrarse...
¡redux necesita estos ejemplos!

Estoy de acuerdo con @gggin y @EricSimons, una versión completa lista para producción de estas características sería increíble:

Autenticación (correo electrónico / contraseña y oAuth, JWT)
CRUD para publicaciones de blog y comentarios sobre publicaciones de blog
Siguiendo a los usuarios
Alimentación global de todos los blogs y alimentación de los blogs de los usuarios que sigues
Sistema de etiquetado
Perfiles de usuario / editar información de perfil

Además de esto, un sistema básico de roles o permisos sería genial. Algo equivalente a los equipos de GitHub o miembros de Trello

Hola a todos,

He estado trabajando en una propuesta flexible para un redux crud api robusto basándome en mi experiencia durante las últimas dos semanas:

https://github.com/ppiekarczyk/redux-crud-api-middleware/blob/master/README.md

Cualquier comentario sería agradecido. ¡Gracias!

Estaría dispuesto a tomar la aplicación que estoy construyendo ahora y convertirla también en un proyecto de ejemplo de código abierto.

Hola a todos: nos complace anunciar que el código base de ejemplo está casi listo para su revisión. Es muy completo y cubre la mayoría de los casos de uso del mundo real de los que hemos hablado en este hilo (autenticación, CRUD, paginación, etc.). @ vkarpov15 tiene algunas cosas que terminar, pero debería estar listo a principios de la próxima semana.

Nos encantaría su ayuda para revisar el código base. Sé que @gaearon mencionó que estaría dispuesto a echar un vistazo hace unos meses, y cualquier y todos los comentarios de la comunidad aquí serían excelentes. Usaremos este repositorio para la base de código inicial mientras revisamos e iteramos, luego distribuimos el repositorio final al repositorio oficial de redux una vez que esté listo. Siéntase libre de destacar / mirar, y también publicaré una actualización en este hilo una vez que el código base esté en línea y listo para su revisión.

¡Feliz de responder cualquier pregunta y gracias a todos los aquí presentes por la excelente discusión!

Suena bien. Asegúrese de agregar una mención y un enlace en la pregunta de preguntas frecuentes de Redux cuando esté listo.

Como se prometió, el código base está listo para su revisión en https://github.com/GoThinkster/redux-review , me encantaría escuchar los comentarios de todos. ¡Problemas y relaciones públicas bienvenidos!

Hola chicos, muchas gracias por la increíble discusión y por dar un gran ejemplo del mundo real ...

Solo para agregar a la lista de tales ejemplos, encontré este ejemplo https://github.com/andrewngu/sound-redux , demostración funcional implementada en https://soundredux.io/. Parece que también cumple con los criterios de los que hablaba @gaearon . Pero no estoy seguro, por lo que sería útil que alguien pudiera darnos su opinión. Si califica, será una buena adición a la lista. Además, se mantiene activamente durante el último año y medio.

Y finalmente, un agradecimiento especial a @EricSimons por su increíble ejemplo del mundo real.

De hecho, agregué una entrada de preguntas frecuentes que apunta a una serie de aplicaciones React y Redux del mundo real, en http://redux.js.org/docs/faq/Misiverse.html#misiverse -real-projects. (En realidad, sé que he visto esa aplicación Sound-Redux antes, pero no creo que la agregué a mi lista. Tendré que hacerlo).

Voy a seguir adelante y cerrar este problema con el argumento de que ya no parece haber una necesidad inmediata de agregar un ejemplo más grande directamente al repositorio de Redux, dada la cantidad de aplicaciones "reales" que podemos apunta a. Si alguien quisiera contribuir activamente con un ejemplo específico al repositorio, diga algo y podemos reabrirlo.

Y sí, ¡gracias a todos los que han contribuido con discusiones y ejemplos!

¿Fue útil esta página
0 / 5 - 0 calificaciones