Executando verificação de segurança...
3

Muito legal o artigo e obrigado por trazer isso para o TabNews!

Uma pergunta: o React é declarativo na camada da apresentação (na parte do return do seu exemplo). Mas ele me parece até certo ponto imperativo no restante ou estou enganado? Por exemplo, quando você define que setIsLoading(true); ou qualquer outra coisa que o componente fizer, como uma chamada HTTP por fetch.

Carregando publicação patrocinada...
1

Opa, obrigado pelo comentário, Filipe!

Uma honta ter você aqui hahahaha.

Sim, estamos falando sobre a camada de apresentação em si, o que gera a nossa UI.

Se olharmos de forma separada, como você fez, podemos considerar a parte "lógica" como imperativa. Mas - na minha interpretação (que não significa nada hahahaha) - se olharmos o conjunto da obra em si (o React como um todo) podemos considerar que até mesmo o setIsLoading(true); é declarativo, pois o simples fato de executarmos essa linha de código evita que tenhamos que fazer outras ações de maneira imperativa:

button.disabled = true;
button.textContent = 'Loading...';

No outro exemplo que você deu de fazer uma chamada fetch, o React hoje possui um mecanismo próprio chamado createResource para lidar com a assincronicidade da chamada e não travar o UI do usuário enquanto aguarda pela resposta.

Para nós, basta que utilizemos o fetch, mas por trás dos panos o React abstrai lógicas que teríamos que fazer de maneira imperativa.

Novamente, é apenas a minha interpretação e a forma que eu vejo o React (o todo), mas a camada de apresentação definitivamente é declarativa.

2

Show! Então imagino que estamos bem alinhados e concordo 100% que a camada de apresentação é definitivamente declarativa (apesar de que lá também vejo que é possível colocar código imperativo) 🤝

[edit]

consertei o texto conforme sugestão do jgamaralv

1
2
2

Acredito tambem que React como um todo é de forma delcarativa. Esse repositorio explica a arquitetura fiber por traz do React:

https://github.com/acdlite/react-fiber-architecture

Aqui um outro otimo artigo sobre isso:

https://blog.logrocket.com/deep-dive-react-fiber/

Aqui um video bem deep sobre isso:
https://youtu.be/ZCuYPiUIONs

video resumo:
https://youtu.be/gsvHmZ3hXjo

Esse cara aqui deu uma palestra muito top em um meetup aqui em Berlin:
Teoria:
https://youtu.be/rKk4XJYzSQA
Inspecionando:
https://youtu.be/Zan16X8VvGM

Acrescentei referencias sobre react fiber architecture para ver como nosso codigo se torna mais declarativo pois por baixo do panos muitas coisas acontecem para a magica funcionar :)

1