Existem benefícios de desempenho em usar um sobre o outro?
A resposta atual é não, porque nenhum dos mecanismos atuais do navegador é implementado import/exportno padrão ES6.
Alguns gráficos de comparação http://kangax.github.io/compat-table/es6/ não levam isso em consideração. Portanto, quando vir quase todos os greens do Chrome, tenha cuidado. importA palavra-chave do ES6 não foi levada em consideração.
Em outras palavras, os motores atuais do navegador, incluindo V8 não pode importar novo arquivo JavaScript do arquivo principal JavaScript através de qualquer directiva JavaScript.
(Podemos ainda estar a apenas alguns bugs ou anos até que o V8 implemente isso de acordo com a especificação ES6.)
Este documento é o que precisamos e este documento é o que devemos obedecer.
E o padrão ES6 disse que as dependências do módulo deveriam estar lá antes de lermos o módulo como na linguagem de programação C, onde tínhamos .harquivos (cabeçalhos) .
Essa é uma estrutura boa e bem testada, e tenho certeza que os especialistas que criaram o padrão ES6 tinham isso em mente.
É isso que permite que o Webpack ou outros pacotes de pacotes otimizem o pacote em alguns casos especiais e reduzam algumas dependências do pacote que não são necessárias. Mas, nos casos em que temos dependências perfeitas, isso nunca acontecerá.
Isso levará algum tempo até que o import/exportsuporte nativo seja ativado e a requirepalavra - chave não vá a lugar algum por um longo período de tempo.
O que é require?
Esta é a node.jsmaneira de carregar módulos. ( https://github.com/nodejs/node )
O nó usa métodos no nível do sistema para ler arquivos. Você basicamente depende disso ao usar require. requireterminará em algumas chamadas do sistema uv_fs_open(depende do sistema final, Linux, Mac, Windows) para carregar o arquivo / módulo JavaScript.
Para verificar se isso é verdade, tente usar o Babel.js e você verá que a importpalavra - chave será convertida em require.

node --experimental-modules index.mjspermite usarimportsem Babel e funciona no Nó 8.5.0+. Você pode (e deve) também publicar seus pacotes npm como ESModule nativo , com compatibilidade com versões anteriores darequiremaneira antiga .