Post 1
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent at massa et est vulputate sollicitudin vitae at libero. Pellentesque iaculis neque diam, vulputate tempor est ullamcorper quis.
Hay que tener instalado node previamente Para instalar ReactJS en Linux, sigue estos pasos:
Instala Node.js y npm]
sudo apt install npm
para instalar npm o zypper install npmnpm --version
y la de Node.js con node --version
sudo npm install npm@latest -g
Instalar la herramienta Create React App
sudo npm install -g create-react-app
( -g instala de forma global)create-react-app --version
**Crea una nueva aplicación React
create-react-app myProyect
para generar un nuevo proyecto con
npx create-react-app myProyect
cd myProyect
Nota: npx es el ejecutor de paquete, asi como npm es el instalador de paquetes En el directorio de src para poder renderizarlo tendremos.
App.css App.js App.test.js index.css index.js logo.svg reportWebVitals.js setupTests.js
Donde index.js:
import React from 'react'; import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
// If you want to start measuring performance in your app, pass a function // to log results (for example: reportWebVitals(console.log)) // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals reportWebVitals();
npm start
http://localhost:3000
**Configura Nginx si no se tiene instalada apache para la aplicación React
sudo apt install nginx
o zypper install nginx
sudo systemctl restart nginx
Construye la aplicación para producción[4][5]
npm run build
para generar los archivos optimizados para producciónsudo cp -r build/* /var/www/html/react
https://miapp.com
App.js y publicc/index.html donde id sera root
JSX:
<myComponent
prop="Mi Valor"
/>
Nota: Las propiedades serian como los parametros de una funcion --> Component:
function myComponent {prop } ) {
return <span>{prop}</span>;
}
--> Output
Es recomensable cambiar la extension del App.js a App.jsx
Eliminaremos todo lo contenido del Archivo App.js: Y dejamos
import logp from './logo.svg';
import ./App,css';
function App() {
return();
}
export default App;
Creamos una carpeta en srv llamada components y el archivo Article.jsx
const Article => () => { } export default Article
e introducimos nuestro codigo // Introducimos nuestro codigo entre los {}:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent at massa et est vulputate sollicitudin vitae at libero. Pellentesque iaculis neque diam, vulputate tempor est ullamcorper quis.
para luego crear un import en Appj.sx...
import Article from './components/Article'
Y en la Funcion App() en el return()....
Tambien es muy importante declarar un return en el componente Quedando Article.jsx
const Article = () => {
return(
<article id="post1" class="flex-item">
<h2>Post 1</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent at massa et est vulputate sollicitudin vitae at libero. Pellentesque iaculis neque diam, vulputate tempor est ullamcorper quis.
<button>Me gusta</button>
</article>
)
}
export default Article
Crearemos una variable para crear unas props
Vemos que conteniono es variable en nuestro codigo html para crear variables para pasarlas al prop.
Definiremos en nuestro ejemplo de Article.jsx:
const Article = ({id, article, content}) =>
Importante meterlos entre llaves.
Importante es cambia class por className en el archivo Article.jsx.
Y ahora introducimos las variables en el contenido
<article id={id} className="flex-item">
<h2>{title}</h2>
<p>{content}<p>
Es importantecrear unas etiquetas de apertura y cierre que contenga :
<>
<Article />:
</>
React envuelve eventos del DOM en su propio sistema de eventos, lo que facilita definir como debe comportarse un componente cuando se interactua con el.
El estado en React se refiere a los datos que un componente mantiene y que pueden cambiar con el tiempo, afectando lo que se muestra en la pantalla.
Un evento cambiarea el estado.
Lo vamos a hacer con el boton de Me gusta
Para poner estilos tenemos que modificar App.css
.liked {
background-color: blue;
color: white;
}
Y poniendolo en nuestro prop como className=liked"
Ahora vamos a ver el Estado con useState que es un React Hook o Gancho para poner un estado a una variable.
el useState vigila el estado, segun los eventos.
import { useState } from 'react';
function MyComponent() {
const [age, setAge] = useState(28);
const [name, setName] = useState('Taylor');
const [todos, setTodos] = useState(() => createTodos());
const [name, setName] = useState('Edward');
function handleClick() {
setName('Taylor');
setAge(a => a + 1);
En nuestro ejemplo: 1. import {useState } from 'react' Tendremos que poner el estado inicial: Dentro del Props Article
const [isLiked, setIsLiked] = useState(false) // Que no se le ha dado Liked
El valor que estamos vigilando es isLiked
Y ahora utilizaremos el useState para modificar la Clase <button classname={ isLiked ? 'liked': ''}
Nos hace falta utilizar seIsLiked, para ello añadimos un evento al boton:
<button classname={ isLiked ? 'liked': ''} onClick={handleLikeButtonClick}>Me gusta </button>
Para que funcione tenemos que delarar una constante dentro del la funcion Article:
const handleLikeButtonClick = () => {
setIsLiked(!isLiked)
}
Al negarlo conseguimos invertir el estado de la variable. isLike