Perguntas de entrevista React, typescript e NextJs Flashcards

(30 cards)

1
Q

O que é o Virtual DOM?

A

É uma representação leve da árvore de elementos da UI. React compara o Virtual DOM com o DOM real (diffing) e atualiza somente o necessário, melhorando a performance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Qual a diferença entre um componente de classe e um funcional?

A

Componentes de classe usam class, this, state e métodos de ciclo de vida como componentDidMount.

Componentes funcionais são funções que retornam JSX. Com os Hooks, eles também podem ter estado e efeitos colaterais.

➡️ Hoje, os funcionais são preferidos por serem mais simples e modernos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

O que são Hooks? Cite 3 exemplos.

A

São funções que permitem usar estado e ciclos de vida em componentes funcionais. Ex: useState, useEffect, useContext.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Como funciona o useEffect?

A

O useEffect serve para lidar com efeitos colaterais no React, como buscar dados, atualizar o DOM ou configurar timers.

Ele roda:

Ao montar o componente,

Ao atualizar alguma dependência,

E pode limpar recursos ao desmontar (com return).

📌 O que controla isso é o array de dependências no final do useEffect.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Qual a diferença entre useState e useReducer?

A

useState é para estados simples. useReducer é mais indicado para estados complexos ou com múltiplas transições.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Como prevenir re-renderizações desnecessárias?

A

Usando useMemo, useCallback, e garantindo keys estáveis em listas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Como você passa props entre componentes e o que é lifting state up?

A

Props são passadas de pai para filho. “Lifting state up” é mover o estado para o componente pai para compartilhá-lo entre filhos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Como funciona o controle de formulários em React?

A

Pode ser controlado (com useState) ou não controlado (com refs). Libs como React Hook Form ajudam no controle e validação.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

O que é o JSX?

A

É uma extensão de sintaxe que permite escrever HTML dentro do JavaScript.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Como tratar eventos em React?

A

Usando camelCase: onClick={() => alert(‘ok’)}. Funciona de forma semelhante ao JS nativo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qual a diferença entre getStaticProps e getServerSideProps?

A

getStaticProps: dados gerados em build time.
getServerSideProps: dados renderizados a cada requisição.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Como funciona o roteamento dinâmico no Next.js?

A

Criando arquivos com colchetes: [id].tsx. Acessa via useRouter ou como parâmetro da função de dados.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Como navegar programaticamente entre páginas?

A

Usando useRouter().push(‘/rota’).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

O que é ISR (Incremental Static Regeneration)?

A

Permite regenerar páginas estáticas após o deploy com revalidação via revalidate no getStaticProps.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Como funciona a pasta public/ no Next.js?

A

Arquivos estáticos acessíveis diretamente pela URL (/logo.png).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Como configurar SEO básico no Next.js?

A

Usando next/head para definir título, descrição, favicon, etc.

17
Q

Como implementar middleware no Next.js 13+?

A

Criando middleware.ts na raiz de /app ou /pages. Útil para autenticação e redirecionamento.

18
Q

Como tipar props de um componente funcional?

A

Criando uma interface:
interface Props { title: string }
const MyComponent: FC<Props> = ({ title }) => <h1>{title}</h1>;</Props>

19
Q

Como definir um estado com useState tipado?

A

const [count, setCount] = useState<number>(0);</number>

20
Q

O que é o as const em TypeScript?

A

Define uma constante com tipos literais imutáveis. Útil para enums e valores fixos.

21
Q

Qual a diferença entre interface e type?

A

São semelhantes. interface é mais usada para objetos e permite extensão. type é mais flexível (pode unir tipos, primitivos, etc).

22
Q

Como tipar um array de objetos?

A

type User = { id: number; name: string };
const users: User[] = […]

23
Q

Como tornar uma prop opcional?

A

interface Props { name?: string }

24
Q

Como você lida com bibliotecas JS sem tipagem?

A

Usando @types/nome-da-lib ou criando uma tipagem com declare module.

25
Como organiza os diretórios em um projeto Next.js?
Geralmente: - pages/ ou app/ - components/ - services/api/ - hooks/ - types/
26
Como evita repetição de código em componentes?
Criando componentes reutilizáveis, hooks customizados ou funções utilitárias.
27
Quais bibliotecas você costuma usar com React?
React Query, React Hook Form, Zustand, Axios, Yup, TailwindCSS.
28
Já usou styled-components, Tailwind ou CSS Modules?
Sim, depende do projeto. Tailwind é prático para prototipagem rápida, styled-components para temas dinâmicos.
29
Como você lida com responsividade?
Utilizando media queries no CSS/Tailwind ou componentes responsivos via Chakra UI, por exemplo.
30
Como garantir acessibilidade (a11y)?
Usando tags semânticas, aria-label, foco correto, contraste, e testando com teclado.