Este documento presenta una introducción a ReactJS y Redux. Explica que ReactJS es una biblioteca JavaScript para desarrollar interfaces basadas en componentes y que mantiene el contenido actualizado. También describe la instalación de ReactJS, los conceptos básicos como componentes, props, estado y ciclo de vida, y cómo conectar una aplicación React con Redux para gestionar el estado de forma predecible. Finalmente, incluye enlaces de referencia sobre estas tecnologías.
El documento describe una aplicación de escritorio con una ventana principal que contiene menús para abrir ventanas internas de diferentes categorías de productos (Electrónica, Hitech, Gadgets). Cada ventana interna contiene botones que abren ventanas adicionales mostrando detalles de productos individuales. La clase Main inicia la ventana principal al ejecutar la aplicación.
Este documento proporciona una introducción al uso de objetos Statement en Java para interactuar con bases de datos. Define Statement como un objeto que se usa para enviar sentencias SQL a la base de datos y describe los tres tipos principales de objetos Statement. Además, explica cómo crear objetos Statement, ejecutar sentencias SQL y cerrarlos una vez que ya no se necesitan. Finalmente, incluye dos ejemplos de código que muestran cómo utilizar objetos Statement para realizar operaciones básicas en una base de datos, como consultas, inserciones y eliminaciones.
Este documento presenta un ejemplo de uso de ListView y SQLite en Android. Se muestra código para crear una lista desplegable de países con su población correspondiente, y también cómo implementar funciones básicas de CRUD (crear, leer, actualizar, borrar) en una base de datos SQLite para almacenar datos de votantes con sus nombres, colegio y mesa de votación. El documento concluye explicando que SQLite es una herramienta nativa y sencilla de usar en Android para almacenar datos de forma local en una base de datos.
Qué es lo que se viene en la próxima version de React. Qué es Fiber? Qué problemas son los que tiene hoy React, y cómo Fiber los intenta solucionar? Qué nuevas features permite? Cuándo va a estar disponible?
Este documento describe cómo agregar controles de comando para navegar y manipular registros en una base de datos. Incluye código para moverse entre registros (primero, último, siguiente, anterior), agregar nuevos registros, eliminar registros existentes, y finalizar la sesión de la base de datos utilizando un array de botones de comando.
En esta sesión os contaremos la visión de React para el desarrollo de aplicaciones web desde el punto de vista de un desarrollador de ASP.NET que tiene que aprender a trabajar con estas nuevas tecnologías.
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
En esta sesión os contaremos la visión de React para el desarrollo de aplicaciones web desde el punto de vista de un desarrollador de ASP.NET que tiene que aprender a trabajar con estas nuevas tecnologías.
Integrando React.js en aplicaciones Symfony (deSymfony 2016)Ignacio Martín
Introducción a React.js + técnicas y conceptos útiles, como aplicaciones universales (isomórficas) o cómo usar json schema para facilitarnos la vida al trabajar con formularios.
El documento describe una aplicación de escritorio con una ventana principal que contiene menús para abrir ventanas internas de diferentes categorías de productos (Electrónica, Hitech, Gadgets). Cada ventana interna contiene botones que abren ventanas adicionales mostrando detalles de productos individuales. La clase Main inicia la ventana principal al ejecutar la aplicación.
Este documento proporciona una introducción al uso de objetos Statement en Java para interactuar con bases de datos. Define Statement como un objeto que se usa para enviar sentencias SQL a la base de datos y describe los tres tipos principales de objetos Statement. Además, explica cómo crear objetos Statement, ejecutar sentencias SQL y cerrarlos una vez que ya no se necesitan. Finalmente, incluye dos ejemplos de código que muestran cómo utilizar objetos Statement para realizar operaciones básicas en una base de datos, como consultas, inserciones y eliminaciones.
Este documento presenta un ejemplo de uso de ListView y SQLite en Android. Se muestra código para crear una lista desplegable de países con su población correspondiente, y también cómo implementar funciones básicas de CRUD (crear, leer, actualizar, borrar) en una base de datos SQLite para almacenar datos de votantes con sus nombres, colegio y mesa de votación. El documento concluye explicando que SQLite es una herramienta nativa y sencilla de usar en Android para almacenar datos de forma local en una base de datos.
Qué es lo que se viene en la próxima version de React. Qué es Fiber? Qué problemas son los que tiene hoy React, y cómo Fiber los intenta solucionar? Qué nuevas features permite? Cuándo va a estar disponible?
Este documento describe cómo agregar controles de comando para navegar y manipular registros en una base de datos. Incluye código para moverse entre registros (primero, último, siguiente, anterior), agregar nuevos registros, eliminar registros existentes, y finalizar la sesión de la base de datos utilizando un array de botones de comando.
En esta sesión os contaremos la visión de React para el desarrollo de aplicaciones web desde el punto de vista de un desarrollador de ASP.NET que tiene que aprender a trabajar con estas nuevas tecnologías.
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
En esta sesión os contaremos la visión de React para el desarrollo de aplicaciones web desde el punto de vista de un desarrollador de ASP.NET que tiene que aprender a trabajar con estas nuevas tecnologías.
Integrando React.js en aplicaciones Symfony (deSymfony 2016)Ignacio Martín
Introducción a React.js + técnicas y conceptos útiles, como aplicaciones universales (isomórficas) o cómo usar json schema para facilitarnos la vida al trabajar con formularios.
Introducción al desarrollo Web: Frontend con Angular 6Gabriela Bosetti
El documento presenta una introducción al desarrollo frontend con Angular 6. Los objetivos incluyen comprender el desarrollo frontend con Angular, utilizar un framework MVC como Angular, y ser capaz de desarrollar una Single Page App. Se explican conceptos como TypeScript, Bootstrap, servicios y enrutamiento. Finalmente, se muestra cómo crear y extender un repositorio para migrar la aplicación con servicios backend.
Buenas prácticas en el desarrollo para Android.
Consejos sobre:
- Organización del código
- Trucos en programación Java
- Reutilización
- Rendimiento
- Compartición de datos
- Usabilidad
- Etc.
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...leofishman
Este “Bootcamp” es la primera de una serie de capacitaciones que se dictarán en varios lugares y contextos. Durante este “Bootcamp” se verán las bases para crear aplicaciones Android usando eclipse + ADT (Android Development Tools).
Durante el curso cubriremos:
Descripción básica de sistemas Android y sus principales beneficios para usuarios, desarrolladores y empresas.
Instalación y configuración del ambiente de desarrollo.
Creación de una aplicación. Emulador y deploy en dispositivos android.
Conceptos básicos sobre arquitectura y ciclos de vida de aplicaciones Android. Layouts e Intents.
JHipster es un generador de código basado en Yeoman que nos genera un proyecto con Spring Boot en el back-end y con Angular en el front-end.
Llevo un año y medio desarrollando con Spring Boot y Angular y desde hace unos meses, mis nuevos desarrollos los realizo con JHipster. Por eso me he decidido a proponer este taller en donde montaré una pequeña aplicación con este tándem, y en donde hablaré también de mi propia experiencia.
Para poder asistir al taller es necesario tener instalado JHipster y tu IDE favorito (yo usaré Spring Tool Suite para back y Visual Studio Code para front). Para no tener problemas de descarga durante el taller tenéis que crearos un proyecto vacío, en el cual haremos modificaciones durante el taller. Creároslo con los valores por defecto, y luego ejecutarlo con ./mvnw para que se descarguen todas las librerías. Deberíais poder ver algo en http://localhost:8080 ;)
Este documento describe cómo integrar las tecnologías JSF, Spring y Hibernate en una aplicación web. Explica cómo configurar los componentes de cada tecnología, crear clases DAO y utilizar un VariableResolver de Spring para inyectar dependencias. También cubre cómo sobrescribir clases como Application y ApplicationFactory para personalizar el comportamiento de JSF.
Este documento presenta un tutorial para crear una aplicación Android básica utilizando Eclipse. Explica cómo instalar el plugin ADT de Eclipse, crear un proyecto "Hello World" con una actividad, agregar una lista y persistir los datos utilizando SharedPreferences.
Este documento describe cómo crear reportes en JDeveloper utilizando JasperReports e IReport. Explica cómo configurar IReport para conectarse a una base de datos, diseñar un reporte simple con un campo de búsqueda, y ejecutar el reporte para generar un archivo JRXML que luego puede usarse en JDeveloper.
Webinar - Iniciación a React para desarrollo de interfaces de usuarioArsys
Presentación del webinar Iniciación a React para desarrollo de interfaces de usuario, en el que hemos profundizado en la librería React, que permite desarrollar interfaces de usuario y aplicaciones frontend basadas en JavaScript: características, herramientas disponibles, desarrollo de componentes, etc..
Vídeo íntegro del webinar disponible en https://www.youtube.com/user/Arsys
Más información en https://www.arsys.es/blog
Este documento explica los conceptos básicos de Redux y cómo se integra con React. Redux es un sistema de flujo de datos unidireccional para manejar el estado de las aplicaciones. Los conceptos clave son el store, las actions y los reducers. El store almacena todo el estado, las actions describen los cambios de estado y los reducers actualizan el estado de forma predecible a partir de las actions. Redux sigue tres principios: single source of truth, estado de solo lectura y funciones puras. En React, los componentes de contenedor se conectan a Redux median
1) El documento presenta información sobre aplicaciones AJAX (JavaScript asíncrono y XML), comparando el comportamiento de aplicaciones de escritorio, web y web + AJAX. 2) Describe conceptos clave como Javascript, XML, JSON y el objeto XMLHttpRequest que permite solicitudes asíncronas al servidor. 3) Explica el flujo típico de una aplicación AJAX, incluyendo respuestas del servidor y marcos como ExtJS.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Juan Manuel
El documento describe el diseño arquitectónico de una aplicación de notas rápidas usando el patrón MVVM. Se creará una clase ModeloNotasRapidas que implemente INotifyPropertyChanged para encapsular la lógica del modelo y el acceso a datos. También se creará un ViewModel que sincronice los cambios de propiedad del modelo con la vista y contenga propiedades, comandos y métodos para crear, eliminar y listar notas. La vista tendrá un control NotasControl con una ListView que muestre las notas usando un datatemplate y
En este lunch & learn Eduardo nos presentará Redux, una forma de crear contenedores de estados predecibles para aplicaciones JavaScrip. También nos habla de @barcitomx , problemas y soluciones. ¡Esperamos que lo disfrutes!
Este documento describe cómo crear un sitio web simple con HTML, CSS y JavaScript y luego extender sus funcionalidades mediante frameworks como Angular en el frontend y Express en el backend. Explica conceptos como Single Page Applications, instalación de módulos con NPM, y uso de plantillas como Nunjucks con Express.
El documento presenta una introducción a Android, incluyendo herramientas de desarrollo, interfaces de usuario, actividades, intents y adaptadores de listas. Explica conceptos como views, layouts, menús y la creación de una aplicación "Hola Mundo".
Este documento describe diferentes componentes y directivas de Angular como ngFor, ngIf, ngSwitch y sus usos. Explica conceptos como enlace de datos, flujo de datos entre componentes padres e hijos, formularios, ciclo de vida de los componentes y más. Proporciona ejemplos de código para ilustrar el uso correcto de estas características en una aplicación Angular.
Segunda charla de la Xamarin4Party de Sevilla, en la que hablo de las novedades de Xamarin.Forms 2.0 y 2.1 pre
Las demos de todos los puntos se pueden descargar en:
http://www.github.com/josueyeray/xamarinforms2
Buscador de Eventos y Fiestas en España - Buscafiestaholabuscafiesta
Buscafiesta.es es el buscador líder en España para fiestas y eventos, diseñado para satisfacer las necesidades tanto de organizadores como de asistentes. Este innovador software ofrece una plataforma integral que permite a los organizadores de eventos añadir, gestionar y promocionar sus actividades de manera totalmente autónoma, facilitando la visibilidad y escalabilidad de sus eventos.
Buscafiesta.es no solo conecta a los organizadores con su público objetivo, sino que también ofrece herramientas de marketing y análisis que ayudan a maximizar el impacto de cada evento. Ya sea para una fiesta local, un concierto multitudinario o un evento corporativo, Buscafiesta.es es la solución definitiva para hacer de cada evento un éxito rotundo.
Introducción al desarrollo Web: Frontend con Angular 6Gabriela Bosetti
El documento presenta una introducción al desarrollo frontend con Angular 6. Los objetivos incluyen comprender el desarrollo frontend con Angular, utilizar un framework MVC como Angular, y ser capaz de desarrollar una Single Page App. Se explican conceptos como TypeScript, Bootstrap, servicios y enrutamiento. Finalmente, se muestra cómo crear y extender un repositorio para migrar la aplicación con servicios backend.
Buenas prácticas en el desarrollo para Android.
Consejos sobre:
- Organización del código
- Trucos en programación Java
- Reutilización
- Rendimiento
- Compartición de datos
- Usabilidad
- Etc.
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...leofishman
Este “Bootcamp” es la primera de una serie de capacitaciones que se dictarán en varios lugares y contextos. Durante este “Bootcamp” se verán las bases para crear aplicaciones Android usando eclipse + ADT (Android Development Tools).
Durante el curso cubriremos:
Descripción básica de sistemas Android y sus principales beneficios para usuarios, desarrolladores y empresas.
Instalación y configuración del ambiente de desarrollo.
Creación de una aplicación. Emulador y deploy en dispositivos android.
Conceptos básicos sobre arquitectura y ciclos de vida de aplicaciones Android. Layouts e Intents.
JHipster es un generador de código basado en Yeoman que nos genera un proyecto con Spring Boot en el back-end y con Angular en el front-end.
Llevo un año y medio desarrollando con Spring Boot y Angular y desde hace unos meses, mis nuevos desarrollos los realizo con JHipster. Por eso me he decidido a proponer este taller en donde montaré una pequeña aplicación con este tándem, y en donde hablaré también de mi propia experiencia.
Para poder asistir al taller es necesario tener instalado JHipster y tu IDE favorito (yo usaré Spring Tool Suite para back y Visual Studio Code para front). Para no tener problemas de descarga durante el taller tenéis que crearos un proyecto vacío, en el cual haremos modificaciones durante el taller. Creároslo con los valores por defecto, y luego ejecutarlo con ./mvnw para que se descarguen todas las librerías. Deberíais poder ver algo en http://localhost:8080 ;)
Este documento describe cómo integrar las tecnologías JSF, Spring y Hibernate en una aplicación web. Explica cómo configurar los componentes de cada tecnología, crear clases DAO y utilizar un VariableResolver de Spring para inyectar dependencias. También cubre cómo sobrescribir clases como Application y ApplicationFactory para personalizar el comportamiento de JSF.
Este documento presenta un tutorial para crear una aplicación Android básica utilizando Eclipse. Explica cómo instalar el plugin ADT de Eclipse, crear un proyecto "Hello World" con una actividad, agregar una lista y persistir los datos utilizando SharedPreferences.
Este documento describe cómo crear reportes en JDeveloper utilizando JasperReports e IReport. Explica cómo configurar IReport para conectarse a una base de datos, diseñar un reporte simple con un campo de búsqueda, y ejecutar el reporte para generar un archivo JRXML que luego puede usarse en JDeveloper.
Webinar - Iniciación a React para desarrollo de interfaces de usuarioArsys
Presentación del webinar Iniciación a React para desarrollo de interfaces de usuario, en el que hemos profundizado en la librería React, que permite desarrollar interfaces de usuario y aplicaciones frontend basadas en JavaScript: características, herramientas disponibles, desarrollo de componentes, etc..
Vídeo íntegro del webinar disponible en https://www.youtube.com/user/Arsys
Más información en https://www.arsys.es/blog
Este documento explica los conceptos básicos de Redux y cómo se integra con React. Redux es un sistema de flujo de datos unidireccional para manejar el estado de las aplicaciones. Los conceptos clave son el store, las actions y los reducers. El store almacena todo el estado, las actions describen los cambios de estado y los reducers actualizan el estado de forma predecible a partir de las actions. Redux sigue tres principios: single source of truth, estado de solo lectura y funciones puras. En React, los componentes de contenedor se conectan a Redux median
1) El documento presenta información sobre aplicaciones AJAX (JavaScript asíncrono y XML), comparando el comportamiento de aplicaciones de escritorio, web y web + AJAX. 2) Describe conceptos clave como Javascript, XML, JSON y el objeto XMLHttpRequest que permite solicitudes asíncronas al servidor. 3) Explica el flujo típico de una aplicación AJAX, incluyendo respuestas del servidor y marcos como ExtJS.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Juan Manuel
El documento describe el diseño arquitectónico de una aplicación de notas rápidas usando el patrón MVVM. Se creará una clase ModeloNotasRapidas que implemente INotifyPropertyChanged para encapsular la lógica del modelo y el acceso a datos. También se creará un ViewModel que sincronice los cambios de propiedad del modelo con la vista y contenga propiedades, comandos y métodos para crear, eliminar y listar notas. La vista tendrá un control NotasControl con una ListView que muestre las notas usando un datatemplate y
En este lunch & learn Eduardo nos presentará Redux, una forma de crear contenedores de estados predecibles para aplicaciones JavaScrip. También nos habla de @barcitomx , problemas y soluciones. ¡Esperamos que lo disfrutes!
Este documento describe cómo crear un sitio web simple con HTML, CSS y JavaScript y luego extender sus funcionalidades mediante frameworks como Angular en el frontend y Express en el backend. Explica conceptos como Single Page Applications, instalación de módulos con NPM, y uso de plantillas como Nunjucks con Express.
El documento presenta una introducción a Android, incluyendo herramientas de desarrollo, interfaces de usuario, actividades, intents y adaptadores de listas. Explica conceptos como views, layouts, menús y la creación de una aplicación "Hola Mundo".
Este documento describe diferentes componentes y directivas de Angular como ngFor, ngIf, ngSwitch y sus usos. Explica conceptos como enlace de datos, flujo de datos entre componentes padres e hijos, formularios, ciclo de vida de los componentes y más. Proporciona ejemplos de código para ilustrar el uso correcto de estas características en una aplicación Angular.
Segunda charla de la Xamarin4Party de Sevilla, en la que hablo de las novedades de Xamarin.Forms 2.0 y 2.1 pre
Las demos de todos los puntos se pueden descargar en:
http://www.github.com/josueyeray/xamarinforms2
Buscador de Eventos y Fiestas en España - Buscafiestaholabuscafiesta
Buscafiesta.es es el buscador líder en España para fiestas y eventos, diseñado para satisfacer las necesidades tanto de organizadores como de asistentes. Este innovador software ofrece una plataforma integral que permite a los organizadores de eventos añadir, gestionar y promocionar sus actividades de manera totalmente autónoma, facilitando la visibilidad y escalabilidad de sus eventos.
Buscafiesta.es no solo conecta a los organizadores con su público objetivo, sino que también ofrece herramientas de marketing y análisis que ayudan a maximizar el impacto de cada evento. Ya sea para una fiesta local, un concierto multitudinario o un evento corporativo, Buscafiesta.es es la solución definitiva para hacer de cada evento un éxito rotundo.
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...micarnavaltupatrimon
Mi Carnaval es la plataforma que permite conectar al usuario con la cultura y la emoción del Carnaval de Blancos y Negros en la ciudad de Pasto, esta plataforma brinda una amplia oferta de productos, servicios, tiquetería e información relevante para generarle valor al usuario, además, la plataforma realiza un levantamiento de datos de los espectadores que se registran, capturando su actividad e información relevante para generar la analítica demográfica del evento en tiempo real, con estos datos se generan modelos predictivos, que permiten una mejor preparación y organización del evento, de esta manera ayudando a reducir la congestión, las largas filas y, así como a identificar áreas de alto riesgo de delincuencia y otros problemas de seguridad.
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...micarnavaltupatrimon
Mi Carnaval es la plataforma que permite conectar al usuario con la cultura y la emoción del Carnaval de Blancos y Negros en la ciudad de Pasto, esta plataforma brinda una amplia oferta de productos, servicios, tiquetería e información relevante para generarle valor al usuario, además, la plataforma realiza un levantamiento de datos de los espectadores que se registran, capturando su actividad e información relevante para generar la analítica demográfica del evento en tiempo real, con estos datos se generan modelos predictivos, que permiten una mejor preparación y organización del evento, de esta manera ayudando a reducir la congestión, las largas filas y, así como a identificar áreas de alto riesgo de delincuencia y otros problemas de seguridad.
2. Miguel Mendoza
Desarrollador de Aplicaciones Frontend en P/S/L Group
mmendoza000@gmail.com
LinkedIN | Twitter | Github: @mmendoza000
Facebook: @mmendoza0
Web Platform: www.saefy.com
Presentador
3. Javascript
- Según datos de la firma de análisis Vision Mobile, más del 50% de las aplicaciones móviles
utilizan HTML5 junto a JavaScript y CSS.
4. React JS
“Es una librería de Javascript para desarrollar interfaces”.
- React.js es una librería open source de JavaScript, patrocina por facebook.
- Se basa en componentes.
- Mantiene Contenido actualizado en todo momento.
- Utiliza JSX (Azúcar sintáctico) para escribir componentes HTML en JS.
- React native permite desarrollar aplicaciones nativas en ReactJS para Dispositivos Móviles.
5. Instalación
Con Yarn
Yarn init
Yarn add react react-dom
Con NPM
npm init
npm install --save react react-dom
Activar ES6 y JSX
Se recomienda usare react con Babel para usar ES6 y JSX y webpack 2 para
empaquetar la aplicación.
npm install --save-dev babel-cli babel-core babel-loader babe-
preset-env babel-preset-stage-1 babel-preset-stage-2 babel-
preset-react webpack
7. Hola Mundo con ReactJS
class HelloMessage extends React.Component {
render() {
return (
<div>
Hello {this.props.name}
</div>
);
}
}
ReactDOM.render(
<HelloMessage name="Dev Meetup Qro" />,
mountNode
);
8. Cada elemento de JSX ejecuta
React.createElement(component, props, ...children)
Que seria:
React.createElement('h1', {className: 'title'}, 'Hello, world!')
Con JSX:
const element = <h1 className="title">Hello, world!</h1>;
JSX
9. function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
function App() {
return (
<div>
<Welcome name="Sara" />
<Welcome name="Cahal" />
<Welcome name="Edite" />
</div>
);
}
ReactDOM.render(
<App />,
document.getElementById('root')
);
function Greeting(props) {
const isLoggedIn = props.isLoggedIn;
if (isLoggedIn) {
return <UserGreeting />;
}
return <GuestGreeting />;
}
ReactDOM.render(
// Try changing to isLoggedIn={true}:
<Greeting isLoggedIn={false} />,
document.getElementById('root')
);
Renderizado y renderizado condicional
Se agrega un div en el archivo html, que será el nodo de la aplicación:
<div id="root"></div>
Y se pasa el elemento React y el elemento nodo como parámetros a ReactDOM.render():
10. Componentes basados en clases ES6:
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}
Componentes funcionales
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
Componentes y Props
13. Redux
“Redux es un contenedor predecible del estado de
aplicaciones JavaScript”
Redux te ayuda a escribir aplicaciones que se comportan de manera consistente, corren en distintos
ambientes (cliente, servidor y nativo), y son fáciles de probar.
Existen muchas librerías creadas para integrar Redux como react-redux para React y ngRx para
Angular. Los conceptos de implementación siempre son los mismos.
14. Para instalar la versión estable
npm install --save -S redux
Connexion con react y herramientas de desarrollo
npm install --save react-redux redux-devtools
Instalación de Redux
15. El store de la aplicación es de solo lectura. Solo puede ser cambiado despachando
acciones.
"No nos preocupamos por factores externos que puedan modificar el state"
Estado inmutable
store.dispatch({
type: 'INCREMENT'
});
16. “
Una función es impura cuando hace
sentido ejecutarla sin utilizar su valor
retornado
17. “Los cambios de estado son realizados por Pure functions”
Se utiliza un reducer para crear el siguiente estado de la aplicación. Un reducer es un "pure function"
Pure function: es una función que:
- Dada la misma entrada siempre regresará la misma salida.
- No produce efectos colaterales.
Ventajas de su uso:
- Fácil de realizar pruebas unitarias.
- Hace tu aplicacion más flexible y adaptable a cambios.
- Son completamente independientes del estado de tu aplicación.
- Son inmunes a bugs relacionados con state mutable compartido.
- Sigue el principio KISS (Keep It Simple, Stupid) o (Keep it stupid simple)
Pure functions
18. // index.js
const reducer = (state = 0, action) => {
switch(action.type) {
case 'INCREMENT':
return state + 1;
case 'DECREMENT':
return state - 1;
default: return state;
}
Reducer
Que es un reducer?
El reducer es una función pura que toma el estado anterior y una acción, y devuelve en
nuevo estado.
Al mantenerse pura no contaminar el estado.
20. import { createStore } from 'redux'
let store = createStore(todos)
function addTodo(text) {
return {
type: 'ADD_TODO',
text
}
}
store.dispatch(addTodo('Read the docs'))
store.dispatch(addTodo('Read about the middleware'))
Store
Que es el store?
El store contiene todo el árbol de estado de tu aplicación. La única forma de cambiar el
estado que contiene es despachando una acción store.dispatch.
El store no es una clase. Es solo un objeto con unos pocos métodos. Para crearlo, pasa tu
principal función reductora a createStore.