Todos nós estamos familiarizados com componentes: o bloco de construção mais poderoso do ecossistema angular. Os componentes são o local onde o Dom é prestado, os serviços são injetados, as vistas são renderizadas com a detecção de mudanças. Os componentes podem tomar valores como entradas e acionar eventos como saídas. Mas o problema é que este belo bloco até agora só funciona dentro de um ecossistema Angular. Eu gostaria que pudéssemos ajudar a humanidade usando componentes angulares mesmo fora do ecossistema angular.
Sim! A partir do Angular 7, Angular traz a característica “Elemento Angular”. Agora um componente angular pode ser exportado como um componente autônomo da web. Podemos usá-lo exatamente como uma tag HTML típica como div ou span, em qualquer página HTML, CMS ou mesmo dentro de um projeto React ou Vue.js.
Como funciona:
Passo 3: Empacotamento
Agora se executarmos o build – os arquivos serão gerados na pasta “dist”. Já que queremos usar isso em outro ecossistema para concatenar melhor os arquivos como um arquivo de saída. Então adicione estes comandos em package.json script section:-
"concat-es5": "concat -o output/output-es5.js ./dist/example-ng-element/runtime-es5.js ./dist/example-ng-element/polyfills-es5.js ./dist/example-ng-element/scripts.js ./dist/example-ng-element/main-es5.js","concat-es2015": "concat -o output/output-es2015.js ./dist/example-ng-element/runtime-es2015.js ./dist/example-ng-element/polyfills-es2015.js ./dist/example-ng-element/scripts.js ./dist/example-ng-element/main-es2015.js","concat": "npm run concat-es5 && npm run concat-es2015","build": "ng build --prod --output-hashing=none && npm run concat",
Agora se rodarmos o comando npm run build dois arquivos separados output-es5.js e output-es2015.js serão gerados dentro da pasta de saída.
Passo 4: Use como um componente web
Agora tudo está definido. Podemos usar estes arquivos de saída como nosso componente web independente assim:-
Se rodarmos esta página HTML, poderemos ver a lista de todos os arquivos que serão buscados e mostrados.
Passamos o nome como entrada, podemos ver o nome dentro do componente web – o que significa que a entrada do componente, a detecção de alterações estão a funcionar!
Após verificarmos/desmarcarmos qualquer todo, activado por eventos e todos os dados serão registados na consola. Então o evento de saída também está funcionando!
Então, assim, podemos usar um componente angular em qualquer outro projeto. Você mesmo pode tentar clonar o código de Github.