Uma duvida bem boba, mas pq declaramos o react, nos componentes, mas ele não é usado, e mesmo assim funciona?
Uma duvida bem boba, mas pq declaramos o react, nos componentes, mas ele não é usado, e mesmo assim funciona?
Olá Thiago, tudo certo?
Nenhuma dúvida é boba! essa dúvida é bem interessante inclusive, vamos por partes:
Por debaixo dos panos, quando você gera o JSX (JS com XML) o React transformava isso em React.createElement
, ou seja:
<div>
Hello World
</div>
Se transformava em:
React.createElement('div', null, 'Hello World')
Por isto o React precisava estar no contexto do arquivo, pois o arquivo precisava ter o React para utilizar o createElement
.
A partir do React na sua versão 17, a transformação de JSX mudou, e agora o React.createElement
foi substituido pelo react/jsx-runtime
, que já consegue entender o JSX sem o React e transforma nisso:
import { jsx as _jsx } from 'react/jsx-runtime';
...
_jsx('div', { children: 'Hello World' })
Levando isto em consideração, no código acima não precisamos mais importar o React
!
Caso você queira ler mais sobre isto, leia sobre a nova transformação do JSX e sobre a versão 17, que teve várias outras mudanças legais!
Bons estudos!