ReactJS Flashcards

1
Q

O que é JSX?

A

Extensão de sintaxe para JavaScript. JSX pode lembrar uma linguagem de template, mas que vem com todo o poder do JavaScript. JSX produz “elementos” do React. Depois da compilação, as expressões em JSX se transformam em chamadas normais de funções que retornam objetos JavaScript.

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

O que é ReactDOM?

A

???

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

Markup em JS

A

https://www.youtube.com/watch?v=x7cQ3mrcKaY

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

O que é um “Componente React”?

A

Unidade que contém lógica e markup juntos. Conceitualmente, componentes são como funções JavaScript. Eles aceitam entradas arbitrárias (chamadas “props”) e retornam elementos React que descrevem o que deve aparecer na tela.

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

O que seria um componente React válido?

A

Algo que aceita um único argumento de objeto “props” com dados e retorna um elemento React. // Componentes React podem estar na forma de função ou de classe EC6.

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

O que é o objeto “props”?

A

É o conjunto de informações passadas como argumento para montar um elemento React. Quando o React vê um elemento representando um componente definido pelo usuário, ele passa atributos JSX e componentes filhos para esse componente como um único objeto. Nós chamamos esse objeto de “props”.

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

Referência detalhada da API de componente

A

https://pt-br.reactjs.org/docs/react-component.html

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

Qual é a convenção para nomes de componentes?

A

O React trata componentes começando com letras minúsculas como tags do DOM. Por exemplo, <div></div> representa uma tag div do HTML, mas representa um componente e requer que Welcome esteja no escopo.

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

Convenção para nomear componentes

A

https://pt-br.reactjs.org/docs/jsx-in-depth.html#user-defined-components-must-be-capitalized

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

JSX é obrigatório para trabalhar com React

A

Não
Como podemos insrir expressoes JavaScript dentro de um JSX? = Colocando entre chaves(“{}”). Todas as expressões JavaScript são válidas.

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

Inserção automática de ponto-e-vírgula

A

https://stackoverflow.com/q/2846283

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

Qual é a convenção para nomes de propriedades usada no JMX ao invés dos nomes de atributos do HTML?

A

camelCase. Por exemplo, class se transforma em className em JSX, e tabindex se transforma em tabIndex.

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

É seguro incorporar entradas de usuário em JSX?

A

Por padrão, o React DOM escapa quaisquer valores incorporados no JSX antes de renderizá-los. Assim, assegura que você nunca injete algo que não esteja explicitamente escrito na sua aplicação. Tudo é convertido para string antes de ser renderizado. Isso ajuda a prevenir ataques XSS (cross-site-scripting).

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

XSS (cross-site-scripting)

A

https://pt.wikipedia.org/wiki/Cross-site_scripting

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

Qual é a diferença entre usar JSX e usar chamadas React.createElement()?

A

Nenhuma. O Babel compila JSX para chamadas React.createElement().

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

O que são “Elementos React”?

A

Objetos resultantes do React.createElement() (ou do JMX).

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

Definição de linguagem “Babel”

A

https://babeljs.io/docs/en/next/editors

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

Qual é a relação entre “Elementos React” e “Componentes React”?

A

Elementos compõem os componentes.

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

O que é um “nó raiz do DOM”?

A

é o elemento HTML que terá todo seu conteúdo gerenciado pelo “React DOM”

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

Posso trabalhar com mais de um “nó raiz” em um projeto React?

A

Aplicações construídas apenas com React geralmente tem apenas um único nó raiz no DOM. Se deseja integrar o React a uma aplicação existente, você pode ter quantos nós raiz precisar.

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

Como faço para renderizar um elemento React em um nó raiz?

A
Usando ReactDOM.render().
Por exemplo: 
const element = <h1>Hello, world</h1>; 
ReactDOM.render(element, document.getElementById('root'));
22
Q

O que é um objeto imutável?

A

Uma vez criados, você não pode alterar seus elementos filhos ou atributos.
https://pt.wikipedia.org/wiki/Objeto_imut%C3%A1vel

23
Q

Qual é a única forma de atualizar a interface usando o React?

A

A única forma de atualizar a interface é criar um novo elemento e passá-lo para ReactDOM.render().

24
Q

Como o React DOM aplica modificações no DOM?

A

O React DOM compara o elemento novo e seus filhos com os anteriores e somente aplica as modificações necessárias no DOM para levá-lo ao estado desejado.

25
Q

Classe ES6

A

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Classes

26
Q

É possível usar React em um projeto que não possui “nó raiz” na sua estrutura inicial?

A

Tipicamente, novos aplicativos React tem um único componente App no topo. Contudo, se você integrar o React em um aplicativo existente, você pode começar de baixo para cima com um pequeno componente como o Button e gradualmente chegar ao topo da hierarquia de exibição.

27
Q

Devemos nomear as props de acordo com o contexto em que ele está sendo usado?

A

A recomendação na documentação é nomear props a partir do ponto de vista do próprio componente ao invés do contexto em que ele está sendo usado.

28
Q

Um componente pode modificar seus próprios “props”?

A

Independente se você declarar um componente como uma função ou uma classe, ele nunca deve modificar seus próprios “props”.

29
Q

O que são funções puras?

A

São funções que não tentam alterar suas entradas e sempre retornam o mesmo resultado para as mesmas entradas.

30
Q

Qual é a única regra estrita do React?

A

Todos os componentes React tem que agir como funções puras em relação ao seus props.

31
Q

Para que serve o “state”?

A

O state permite aos componentes React alterar sua saída ao longo do tempo em resposta a ações do usuário, respostas de rede e quaisquer outras coisas, sem violar a única regra estrita do Rect: “Todos os componentes React tem que agir como funções puras em relação ao seus props.”.

32
Q

Qual é a diferença entre “state” e “props” de um componente?

A

O state do componente é similar as “props”, mas é privado e totalmente controlado pelo componente.

33
Q

Posso criar um Componente de Classe que não receba uma “props”?

A

Sim e não. O objeto “props” estará lá mesmo que implícito, sendo necessário torná-lo explícito ao implementar o construtor.

Componentes de classes devem sempre chamar o construtor com “props”.

34
Q

Para que serve o comando “super(props)”?

A

???

35
Q

O que é o “mounting” e o “unmounting” no React e para que eles servem?

A

Em aplicações com muitos componentes, é muito importante limpar os recursos utilizados pelos componentes quando eles são destruídos.

Queremos configurar um temporizador sempre que o componente é renderizado para o DOM pela primeira vez. Isso é chamado de “mounting” no React.

Nós também queremos limpar o temporizador sempre que o DOM produzido pelo componente for removido. Isso é chamado de “unmounting” no React.

métodos especiais: componentDidMount() e componentWillUnmount()

36
Q

Quais são os “métodos de ciclo de vida” de React?

A

componentDidMount() e componentWillUnmount()

37
Q

Posso modificar o State diretamente?

A

Até é possível, mas isso não vai renderizar novamente o componente. Para que ele seja renderizado novamente, usamos o “setState()”.

38
Q

As atualizações do state são sempre síncronas?

A

Não! O React pode agrupar várias chamadas setState() em uma única atualização para desempenho.

Como this.props e this.state podem ser atualizados de forma assíncrona, você não deve confiar em seus valores para calcular o próximo state.

Por exemplo, esse código pode falhar ao atualizar o contador:
[[ Errado: this.setState({ counter: this.state.counter + this.props.increment });]]
[[ Correto: this.setState((state, props) => ({ counter: state.counter + props.increment })); ]]
[[ Correto (ArrowFunc) this.setState(function(state, props) { return { counter: state.counter + props.increment }; }); ]]

39
Q

O que é stateful ou stateless?

A

Apenas o adjetivo que diz se algo possui ou não um “state”. Nos apps React, se um componente é stateful ou stateless é considerado um detalhe de implementação do componente que pode mudar com o tempo. Você pode usar componentes sem state dentro de componentes com “state” e vice-versa.

40
Q

O “state” de um componente pode ser acessado por outros componentes?

A

Por padrão, não. O state é geralmente chamado de local ou encapsulado. Não é acessível a nenhum componente que não seja o que o possui e o define.

Contudo, um componente pode escolher passar seu “state” como props para seus componentes filhos.

41
Q

O que são fluxos de dados “top-down” ou “unidirecionais”?

A

É uma característica do fluxo de dados entre os componentes React porque qualquer state é sempre de propriedade de algum componente específico, e qualquer dado ou interface do usuário derivado desse state só pode afetar os componentes “abaixo” deles na árvore.
Se você imaginar uma árvore de componentes como uma cascata de props, o state de cada componente é como uma fonte de água adicional que o une em um ponto arbitrário, mas também flui para baixo.

42
Q

Quais são as diferenças entre manipular eventos em elementos React e manipular eventos em elementos DOM?

A

É basicamente a mesma coisa, mas com três diferenças de sintaxe:
1ª) Eventos em React são nomeados usando camelCase ao invés de letras minúsculas.
2ª) Com o JSX você passa uma função como manipulador de eventos ao invés de um texto.
3ª) Não podemos retornar false para evitar o comportamento padrão no React. Devemos chamar preventDefault explícitamente.

43
Q

Ao manipularmos eventos em elementos React podemos retornar false para evitar o comportamento padrão?

A

Não. Devemos chamar preventDefault explícitamente.

44
Q

O que é um “synthetic event” de acordo com especificação W3C?

A

https://www.w3.org/TR/DOM-Level-3-Events/

45
Q

Página “SyneticEvent” do ReactJS

A

https://pt-br.reactjs.org/docs/events.html

46
Q

Como podemos fazer com que o “this” funcione dentro de uma callback?

A

Utilizando o “bind”

47
Q

O que é uma Promisse?

A

m objeto que recebe uma função que será processada em paralelo ao fluxo principal. Ela sempre terá um retorno que pode ser “resolve” no caso de sucesso ou “reject” caso ocorra algum erro.

48
Q

O que é uma callback?

A

É uma função passada como argumento para outra e que será executada após a conclusão da execução desta em que foi inserida.

49
Q

Como funciona uma “callback” com “bind”?

A

???

50
Q

O que faz o “fetch()” o javascript?

A

???