/react-apicnig-arquetipo-r16

Arquetipo de una SPA en React 16 utilizando el APICNIG

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

APICNIG - Arquetipo React 16

Descripción 👷

El objeto de este proyecto es disponer de una single-page application (SPA), o aplicación de página única, muy básica, que haga uso de los componentes de la API-CNIG y sirva como base a aplicaciones más complejas.

El propósito de una SPA es la de disponer de una aplicación web o sitio web que quepa en una sola página con el propósito de dar una experiencia más fluida a los usuarios, como si fuera una aplicación de escritorio. En una SPA todos los códigos de HTML, JavaScript, y CSS se cargan una sola vez o los recursos necesarios se cargan dinámicamente cuando lo requiera la página, normalmente como respuesta a las acciones del usuario.

La aplicación se compone de un layout formado por un header, lienzo con cartografía y footer. Se han cargado algunos componentes muy básicos y algunos plugin para mostrar en qué ficheros del código se configuran cada una de las herramientas.

La aplicación dispone de soporte mutiidioma utilizando los componentes de react-i18next.

Además viene activa el arranque en una vista definida por parámetros. Podemos centrar el mapa de arranque en un lugar, especificando centro, sistema de referencia y nivel de zoom de la siguiente manera

http://localhost:3000?zoom=18&srs=EPSG:4083&center=563308,3104166
http://localhost:3000?zoom=18&srs=EPSG:25830&center=439836,4477460
http://localhost:3000?zoom=18&srs=EPSG:4326&center=-3.7102,40.4459
http://localhost:3000?zoom=18&srs=EPSG:3857&center=-412985,4930860

⚛️ React

Como framework para el desarrollo de este arquetipo se ha utilizado React. Se trata de una biblioteca Javascript de código abierto diseñada para crear interfaces de usuario con el objetivo de facilitar el desarrollo de aplicaciones en una sola página. Es mantenido por Facebook y la comunidad de software libre.

Se ha utilizado la versión de React 16. Esta es la versión utilizada en otros visualizadores como Iberpix o Fototeca.

Creación del proyecto.

Este proyecto se ha creado usando el comando npx del gestor de paquetes de Node.JS

$ npx create-react-app

Toda la estructura, incluido el repo por defecto o el package.json, se crea automáticamente sin hacer más. Para más información sobre esto ver los Apuntes de desarrollo.

Available Scripts

El package.json viene con los siguientes scripts:

npm start

Lanza la App en modo de desarrollo en un servidor propio con autoreload cuando varían cosas.
Podemos verlo en http://localhost:3000 con el browser.

La página se recarga con los cambios.
Podemos comprobar los errores por consola.

npm run build

Realiza un build de la App para producción en la carpeta build folder.
Para más información, consultar deployment.

npm run eject

create-react-app encapsula todos los módulos npm que está usando internamente, por lo que su package.json será muy limpio y simple sin que tenga que preocuparse por ello.

Sin embargo, si desea comenzar a hacer cosas más complejas e instalar módulos que puedan interactuar con los módulos que create-react-app está usando bajo el capó, esos nuevos módulos necesitan saber qué está disponible y qué no, lo que significa que debe tener create-react -app anular el resumen de ellos.

Eso, en esencia, es lo que react-scripts ejecthace. Dejará de ocultar lo que tiene instalado debajo del capó y en su lugar expulsará esas cosas en el package.json de su proyecto para que todos lo vean.

🚀 Despliegue

https://projects.develmap.com/apicnig/arquetipor16/

⛲️ Referencias

🔸 More info

You can learn more in the Create React App documentation.

To learn React, check out the React documentation.

Code Splitting

This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting

Analyzing the Bundle Size

This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size

Making a Progressive Web App

This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app

Advanced Configuration

This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration

Deployment

This section has moved here: https://facebook.github.io/create-react-app/docs/deployment

npm run build fails to minify

This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify