🎥 Puedes ver un videotutorial completo sobre cómo crear tu aplicación React con Context.API y Flux siguiendo esta plantilla.
Crea tu primera vista, añádela a las rutas de tu aplicación, crea tu primer componente, añade estilos y utiliza la API de contexto.
Asegúrate de seguir primero los pasos de ejecutar el proyecto, luego vuelve a esta lista, si estás usando Gitpod o Codespaces es posible que el proyecto ya esté en ejecución.
Es hora de añadir algo de código: Todo empieza en el layout de la aplicación (js/layout.js
), este archivo es como una tabla de contenidos donde se añadirán todas las páginas de tu aplicación antes de que puedan ser renderizadas por React y el navegador, puedes leer más sobre React Router aquí.
Ya hemos añadido algunas rutas como Home
, Demo
y Single
, estas vistas son ejemplos útiles de las cosas más frecuentes que sueles necesitar en un proyecto.
Todas las páginas de tu aplicación se añadirán en la carpeta js/pages
, cada una de ellas será un componente React independiente.
Abramos la vista <Demo>
en js/pages/demo.js
.
Como puedes ver, la página demo.js
es sólo un componente React, aquí hay cosas adicionales a notar:
AppContext
que se utilizará para tratar cualquier información global necesaria de otras vistas o de la aplicación; Y el demo.css
que se utilizará para añadir cualquier clase CSS y estilos utilizados en esta vista en particular.1const { store, actions } = useContext(Context);
Todos los estilos de la aplicación se guardan dentro de la carpeta styles
, normalmente tenemos un estilo separado para cada componente.
Puedes actualizar styles/index.css
o crear nuevos archivos .css
dentro de styles/
e importarlos a tus archivos CSS o JS actuales dependiendo de tus necesidades.
Por ejemplo, si quieres crear una clase background-blue
que haga que el fondo de la home sea azul, tienes que hacer algo como esto:
.background-blue
en styles/home.css
.<div className="background-blue">
en tu página HTML en js/pages/home.js
.Normalmente querrás que la mayor parte de tu aplicación HTML esté dividida en componentes que puedan ser reutilizados.
Todos los componentes deben ser creados en js/components
y luego puedes importarlos a las páginas que los utilizarán.
Estamos utilizando componentes funcionales (en lugar de componentes orientados a clases), ya que es la mejor práctica en la industria.
Por ejemplo, si queremos añadir un nuevo componente <Card>
que replique la tarjeta clásica de bootstrap, podemos crear un js/components/Card.js
con el siguiente código:
1export const Card = () => ( 2 const [state, setState] = useState('code here'); //utilizar el estado (si es necesario) 3 return <div className="card"> 4 <div className="card-body"> 5 <h5 className="card-title">Card title</h5> 6 <h6 className="card-subtitle mb-2 text-muted">Card subtitle</h6> 7 <p className="card-text">Some quick example text to build on the card title and make up the bulk of the cards content.</p> 8 </div> 9 </div> 10);
Ahora que tenemos el componente Card
podemos incorporarlo a nuestra página Home.js
con los siguientes pasos:
<Card>
dentro del HTML que devuelve tu página, por ejemplo:1import { Card } from "../component/Card.js"; 2 3export const Home = () => { 4 const { store, actions } = useContext(Context); 5 6 return ( 7 <div className="text-center mt-5"> 8 <h1>Hello Rigo!!</h1> 9 <Card /> 10 </div> 11 ); 12};
Notas importantes
{
al importar el componente de esta forma: { Card }
.<Card />
que se utiliza en la línea 9 del archivo Home.js
.Este boilerplate viene con una API de Contexto general centralizada. El archivo js/store/flux.js
tiene una estructura base para la tienda, te animamos a cambiarla y adaptarla a tus necesidades.
El Provider
ya está configurado. Puedes consumir desde cualquier componente usando el hook useContext
para obtener el store
y las actions
del Context. Mira /views/demo.js
para ver una demo.
1import { Context } from "../store/appContext"; 2 3const MySuperPage = () => { 4 //aquí se usaContext para obtener store y actions 5 const { store, actions } = useContext(Context); 6 7return <div>{/* puede utilizar sus acciones o almacenar dentro del html */}</div> 8}
Login (necesitas tener una cuenta):
1npm i vercel -g && vercel login
Despliegue:
1vercel --prod
✎ Nota: Si no tiene una cuenta, vaya a vercel.com, cree una cuenta y vuelva aquí.
1npm run deploy
👉 Nota: Tendrás que [configurar las páginas de Github para la rama gh-pages].(https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/#enabling-github-pages-to-publish-your-site-from-master-or-gh-pages)
Nota: Asegúrese de que está utilizando la versión 14+ de node
1npm install
1cp .env.example .env
1npm run start