Componentes
Componentes de funcion
Componentes
La forma más sencilla de definir un componente es escribir una función de JavaScript:
Welcome
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
Card
const Card = (props) => {
return (
<>
<div className="card mx-3 text-dark bg-info border border-dark border-3 ">
<img src={props.img} className="card-img-top" alt="imagen" />
<div className="card-body">
<p className="card-text">
{props.texto}
</p>
</div>
<a href="http://google.com" target="_blank" className="btn btn-primary">google.com</a>
</div>
</>
);
};
export default Card;
Card
Con destructuring de los props.
const Card = ({img, texto}) => {
return (
<>
<div className="card mx-3 text-dark bg-info border border-dark border-3 ">
<img src={img} className="card-img-top" alt="imagen" />
<div className="card-body">
<p className="card-text">
{texto}
</p>
</div>
<a href="http://google.com" target="_blank" className="btn btn-primary">google.com</a>
</div>
</>
);
};
export default Card;
Contador
import React, { useEffect, useState } from "react";
function Contador() {
const [count, setCount] = useState(0);
useEffect(() => {
console.log(`La cuenta es: ${count}`);
document.title = `REACT, La cuenta es: ${count}`;
});
return (
<>
<div className="container-fluid text-center">
<h1>Contador</h1>
<h3>La cuenta es: {count}</h3>
<button className="btn btn-primary" onClick={() => setCount(count + 1)}>
Aumentar
</button>
<button className="btn btn-primary mx-3" onClick={() => setCount(count - count)}>
Reset
</button>
<button className="btn btn-primary" onClick={() => setCount(count - 1)}>
Disminuir
</button>
</div>
</>
);
}
export default Contador;
BotonScroll
const BotonScroll = () => {
scroll = () => {
const elemento = document.querySelector('.init')
elemento.scrollIntoView('smooth', 'start');
}
return (
<div className='text-center'>
<button className="btn btn-primary" onClick={() => {
{scroll() }
}}
>
Arriba
</button>
</div>
)
}
export default BotonScroll
App
Podemos crear un componente App que renderice los componentes y el componente Welcome varias veces:
import Welcome from "../componentes/Welcome";
import Card from "../componentes/Card";
import Contador from "../componentes/Contador";
import BotonScroll from "../componentes/BotonScroll";
import papa from "../imagenes/papa.jpg";
import mama from "../imagenes/mama.jpg";
function App() {
return (
<div>
<Welcome name="Sara" />
<Welcome name="Cahal" />
<Welcome name="Edite" />
<Card img={papa} texto="Juan" />
<Card img={mama} texto="Antonia" />
<Contador />
<BotonScroll/>
</div>
);
}
export default App;
Componentes de Clase
Componentes
También puedes utilizar una clase de ES6 para definir un componente:
Welcome
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}