O useEffect é um tipo de hook muito versátil. Uma de suas funções é o efeito colateral. Vamos ver como funciona? No projeto temos a seguinte estrutura, na pasta "components", "Exemplo2". Nosso componente "Exemplo2" com a primeira letra maiúscula, ".jsx" a sua extensão. Temos a seguinte estrutura, estamos importando um hook chamado "useRef" que, na verdade, ele ajuda o useEffect a memorizar o que ele vai fazer como colateral. Nesse exemplo, nós temos aqui uma função, que está recebendo uma constante "selecionarRef". Então aqui, é uma variável selecionar e estou passando "useRef" vazio. Embaixo, eu estou criando o meu "useEffect", que é o efeito colateral. É uma função que estou recebendo uma variável "seleElemento" e aqui, esse "seleElemento", está recebendo o que o meu "useRef" guardou. Então é como se esse "useRef" pegasse o valor, guardasse e depois passasse para o "useEffect" novamente. "Current" é o atual. Então, é o que você estiver selecionando atualmente. E eu vou já mostrar aqui na tela. E aqui, é uma condicional dizendo que ao escolher uma das opções, ele deixa marcado, selecionado. E no nosso "return", exatamente como está aqui na tela, um "select" com três opções, HTML, CSS e JavaScript. Vamos ver então o useEffect e o useRef agindo. Por exemplo, está HTML, ao escolher CSS, ficou o CSS, está selecionado o CSS. Ao escolher o JavaScript, ficou o JavaScript. HTML, HTML. É isso que o useEffect faz como colateral com a ajuda do useRef que guarda na memória o valor selecionado. E assim temos o uso do useEffect como efeito colateral ao selecionar uma opção com a ajuda de um outro hook que é o useRef, que vai memorizar o que foi selecionado.