wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Componentes React-Native

Total questions: 15

Worksheet time: 8mins

Name
Class
Date
1.

No componente LoginScreen, qual é a função do useState na linha const [isLogin, setIsLogin] = useState(true);?

a)

Armazenar o e-mail e a senha do usuário de forma permanente no dispositivo.

b)

Gerenciar uma variável de estado (isLogin) que controla a interface, alternando entre os modos de login e cadastro.

c)

Definir o estilo visual (cores e fontes) do formulário de login.

d)

Criar uma animação de transição quando o usuário alterna entre login e cadastro.

2.

Qual evento é disparado quando o usuário clica no botão 'Entrar' ou 'Cadastrar' e o que a palavra-chave async na sua função significa?

a)

O evento é onClick, e async torna a execução da função mais rápida.

b)

O evento é onPress, e async indica que a função pode executar operações demoradas (como chamadas de rede) sem travar a interface.

c)

O evento é onTap, e async é apenas um comentário para indicar que a função é importante.

d)

O evento é onChange, e async serve para sincronizar os dados do formulário com o Firebase.

3.

Na tela de Login, como o código decide se deve mostrar os campos 'Seu Nome' e 'Sua Empresa'?

a)

Utilizando uma declaração if/else fora do return do componente.

b)

Através de uma classe CSS que aplica display: none aos campos.

c)

Ocultando os campos com a propriedade de estilo opacity: 0.

d)

Através do operador de curto-circuito && ({!isLogin && ...}), que renderiza os campos apenas se a variável isLogin for false.

4.

No componente MapScreen, o que a linha exhibitorsData.map(ex => ...) está efetivamente fazendo?

a)

Calculando a distância entre cada um dos expositores no mapa.

b)

Percorrendo cada item do array exhibitorsData e criando um componente para cada um.

c)

Filtrando o array para mostrar apenas os expositores da categoria 'Salgados'.

d)

Criando um único marcador no mapa que, ao ser clicado, mostra uma lista de todos os expositores.

5.

Qual a finalidade das props visible, onClose, e title no componente CustomModal?

a)

visible define a cor, onClose a animação de fechamento, e title o tamanho da fonte.

b)

visible controla se o modal está visível, onClose é a função para fechá-lo, e title define o texto do título.

c)

visible armazena dados do usuário, onClose faz o logout, e title define a fonte do texto.

d)

visible é o texto principal, onClose o título, e title o botão de fechar.

6.

Qual a principal diferença entre as funções signInWithEmailAndPassword e createUserWithEmailAndPassword?

a)

createUser... cria um novo usuário no sistema, enquanto signIn... verifica as credenciais de um usuário já existente.

b)

Ambas fazem o login, mas createUser... é usada apenas por administradores do sistema.

c)

signIn... salva a senha no dispositivo, enquanto createUser... não.

d)

createUser... só funciona com e-mails do Google, enquanto signIn... funciona com qualquer e-mail.

7.

Ao criar uma nova conta, um documento é criado no Firestore. Em qual 'coleção' e com quais dados?

a)

Na coleção auth, armazenando apenas a senha criptografada do usuário.

b)

Na coleção profiles, armazenando o nome, a idade e o telefone do usuário.

c)

Na coleção users, armazenando o nome, empresa, e-mail e uma lista vazia de favoritos.

d)

Na coleção exhibitors, armazenando o ID do primeiro expositor que o usuário visitar.

8.

Qual é a principal vantagem de usar a função onSnapshot para buscar os dados do usuário na tela de Perfil?

a)

Ela usa menos dados de internet do que uma busca de dados única.

b)

Ela é mais segura porque criptografa os dados durante a transmissão.

c)

Ela estabelece um 'ouvinte' que atualiza a tela automaticamente sempre que os dados mudam no banco de dados.

d)

Ela funciona offline, permitindo que o usuário veja seus dados mesmo sem conexão.

9.

Por que as funções arrayUnion e arrayRemove são eficientes para gerenciar a lista de favoritos?

a)

Porque elas permitem adicionar ou remover itens de um array no banco de dados atomicamente, sem precisar ler e reescrever a lista inteira.

b)

Porque elas ordenam o array de favoritos automaticamente em ordem alfabética no banco de dados.

c)

Porque elas só funcionam em listas de até 10 itens, o que as torna muito rápidas.

d)

Porque elas criam uma cópia de segurança do array antes de fazer qualquer modificação.

10.

Qual a responsabilidade do StackNavigator e do BottomTabNavigator no aplicativo?

a)

StackNavigator cria a barra de título, e BottomTabNavigator os botões laterais de navegação.

b)

Ambos fazem a mesma coisa, mas BottomTabNavigator é um componente mais moderno e otimizado.

c)

StackNavigator gerencia a navegação entre telas empilhadas (como Login -> Principal), enquanto BottomTabNavigator cria as abas na parte inferior da tela principal.

d)

StackNavigator é usado para navegação vertical na tela, e BottomTabNavigator para navegação horizontal.

11.

Como os dados do usuário (userData) são passados para a MainTabNavigator após o login?

a)

Através de uma variável global acessível por todos os componentes.

b)

Salvando os dados no localStorage do dispositivo para serem lidos pela outra tela.

c)

Através do parâmetro de rota initialParams no Stack.Screen que renderiza o MainTabNavigator.

d)

Enviando os dados por uma chamada de API interna do próprio aplicativo.

12.

Na MainTabNavigator, como o código sabe qual ícone (map-pin ou user) deve ser exibido para cada aba?

a)

O nome do ícone é obrigatoriamente o mesmo nome da rota, e o React Native faz a associação.

b)

Os ícones são definidos em um arquivo CSS, e as classes são aplicadas a cada aba.

c)

A função tabBarIcon recebe a rota atual e usa uma estrutura if/else para retornar o nome do ícone correto.

d)

O Firebase envia em tempo real qual ícone deve ser exibido com base nas permissões do usuário.

13.

Como a lista de favoritos na tela de Perfil é atualizada automaticamente após o usuário favoritar um item na tela do Mapa?

a)

A tela de Mapa envia uma notificação push para a tela de Perfil para forçar uma atualização.

b)

O app reinicia automaticamente para recarregar todos os dados do zero.

c)

A tela de Perfil usa onSnapshot, que 'escuta' as mudanças no documento do usuário no Firestore e re-renderiza a lista quando ela é alterada.

d)

Os dados são compartilhados através de uma variável global que é atualizada manualmente na tela de Mapa.

14.

Para exibir o nome e o estande do expositor na lista de favoritos (ex: 'Salgadinhos Crocantes - A12'), como você modificaria a tela de Perfil?

a)

Criando um novo useState para armazenar apenas os números dos estandes.

b)

No método .map(), seria preciso usar o ID do favorito para buscar o objeto completo no exhibitorsData e então formatar o texto.

c)

Adicionando uma nova Cloud Function no Firebase para combinar os dados antes de enviá-los ao app.

d)

Usando CSS para adicionar o número do estande com o pseudo-elemento ::after.

15.

Qual seria a principal vantagem de mover a lista exhibitorsData para uma coleção no Firestore?

a)

O aplicativo funcionaria totalmente offline sem nenhuma configuração adicional.

b)

O consumo de bateria do dispositivo seria drasticamente reduzido.

c)

Permitiria que os dados dos expositores fossem atualizados dinamicamente (por um admin) sem a necessidade de lançar uma nova versão do aplicativo na loja.

d)

O carregamento inicial do mapa se tornaria mais rápido, pois dados locais são mais lentos que dados do Firestore.