E aí, programador! o/
Nessa aula você vai ver como podemos acrescentar listeners de eventos no React, como fazemos normalmente através do .addEventListener() do JavaScript. No React esse processo é bem mais intuitivo e simples.
Vamos seguir utilizando o projeto com o componente Profile construído no exercício 3.
Usar eventos do JavaScript no React é simples, só precisamos definir uma prop de acordo com o evento que iremos ouvir e passar para ela a função a ser executada. Crie um evento “onClick” no botão de “Follow” ao lado do título:
Obs.: repare que usamos camelCase para as props de eventos.
import LinkButton from "../LinkButton"
import Title from "../Title"
import ProfileSection from "./ProfileSection"
import styles from "./styles.module.css"
export default function Profile(props) {
return (
<div className={styles.container}>
<img className={styles.avatar} src={props.avatar} alt={props.name} />
<span>{props.name}</span>
<button onClick={() => alert("Você agora está seguindo!")}>Follow</button>
</Title>
<ProfileSection>{props.bio}</ProfileSection>
// ...
Também podemos criar funções para esses eventos no nosso componente e então atribuir diretamente a função ao evento “onClick”:
Obs.: repare que temos acesso ao parâmetro do evento que foi disparado.
// ...
export default function Profile(props) {
function handleClick(ev) {
console.log(ev)
alert("Você agora está seguindo!")
}
return (
<div className={styles.container}>
<img className={styles.avatar} src={props.avatar} alt={props.name} />
<Title>
<span>{props.name}</span>
<button onClick={handleClick}>Follow</button>
</Title>
<ProfileSection>{props.bio}</ProfileSection>
// ...
Por fim, vamos estilizar o botão de seguir porque o utilizaremos um pouco mais na próxima aula:
// ...
<button
className={styles.followButton}
onClick={handleClick}
>
Follow
</button>
// ...
// ...
.links {
display: flex;
flex-direction: column;
gap: 1rem;
align-items: center;
}
.followButton {
margin-left: 1rem;
padding: .125rem .5rem;
}