Atualizado: 12/01/2025

Registrando Componentes no Vue.js

No Vue.js, os componentes podem ser registrados de forma global ou local. Componentes registrados globalmente ficam disponíveis para qualquer outro componente dentro da aplicação, enquanto os componentes locais só podem ser utilizados dentro do escopo em que foram definidos. O funcionamento da comunicação entre componentes será abordado mais adiante, mas, por enquanto, veremos como os componentes podem ser registrados em uma aplicação Vue.

Registro Global

O registro global de componentes é feito por meio do método component() do objeto da aplicação Vue:

<!DOCTYPE html>
<html>
<head>
    <title>Componentes Vue.js</title>
    <meta charset="utf-8" />
    <script src="https://unpkg.com/vue"></script>
</head>
<body>
    <div id="app">
        <component-a></component-a>
        <component-b></component-b>
    </div>
    <script>
        const app = Vue.createApp({});

        app.component('component-a', {
            template: '<h2>Component A</h2>'
        });
        app.component('component-b', {
            template: '<h2>Component B</h2>'
        });

        app.mount('#app');
    </script>
</body>
</html>

Nesse exemplo, são criados dois componentes globais: component-a e component-b. Como foram registrados globalmente, eles podem ser utilizados em qualquer parte da aplicação sem necessidade de referência explícita no componente pai.

Registrando componentes em Vue.js

Registro Local

No registro local, os componentes são definidos como objetos JavaScript contendo as configurações necessárias. Para que um componente seja registrado localmente, ele deve ser passado para a propriedade components no objeto de configuração da aplicação Vue:

<!DOCTYPE html>
<html>
<head>
    <title>Componentes Vue.js</title>
    <meta charset="utf-8" />
    <script src="https://unpkg.com/vue"></script>
</head>
<body>
    <div id="app">
        <component-a></component-a>
        <component-b></component-b>
    </div>
    <script>
        const ComponentA = {
            template: '<h2>Component A</h2>'
        };
        const ComponentB = {
            template: '<h2>Component B</h2>'
        };

        const app = Vue.createApp({
            components: {
                'component-a': ComponentA,
                'component-b': ComponentB
            }
        });

        app.mount('#app');
    </script>
</body>
</html>

Cada componente é definido como um objeto que contém a configuração necessária. No exemplo, a única configuração presente é o template:

const ComponentA = {
    template: '<h2>Component A</h2>'
};
const ComponentB = {
    template: '<h2>Component B</h2>'
};

Cada componente recebe um nome específico, como component-a para o objeto ComponentA. Para renderizar o componente na página, basta utilizar a tag correspondente <component-a>.

Se um componente não for passado para a propriedade components, ele não poderá ser utilizado dentro do escopo da aplicação.

O resultado obtido com o registro local será o mesmo do exemplo anterior, que utilizava o registro global.

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com