Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida com estrutura de componente

Estou com dúvidas sobre como montar a estrutura de meus componentes, por exemplo, eu tenho meu App.vue que vai apresentar minha página. A minha página tem header, main e footer. O header e o footer eu quero que fiquem sempre visíveis para o meu usuário, mas o meu main vai mudar de acordo com o link clicado no header. Nessa situação como eu dividiria os componentes?

Header.vue, Footer.vue, Home.vue (seria um dos main) e Produtos.vue (seria um dos main também)

Dentro de Home.vue, eu teria:

Banner.vue, GaleriaProdutos.vue e Servicos.vue

Estaria certo montar assim, ou qual seria a melhor maneira de montar essa estrutura?

2 respostas
solução!

Olá, Gisele!

Nesse caso, não existe uma resposta "certa".

Header e Footer me parecem bons candidatos a componentes. Já a troca do seu conteúdo principal pode ser feita via roteador, mais detalhes aqui.

Segundo a documentação, é comum termos uma árvore de componentes.

Fazendo um paralelo com orientação a objetos, é legal termos componentes com responsabilidade única. No dia, é comum "refatorarmos" um componente grande em componentes menores.

Então, respondendo a sua pergunta, acredito que você possui uma boa estratégia. Você pode seguir com ela e, caso identifique no futuro, quebrar em componentes ainda menores se necessário.

Nossa Marcos, me esclareceu muito a sua explicação. A questão das rotas, eu não sabia que dava para chamar N componentes para um único path, dessa forma não preciso ter um componente "pai" como Home.vue.

import Header from './components/header/Header';
 import Home from './components/pages/Home';
 import Footer from './components/footer/Footer';


const routes = [
    {
      path: "/teste",
      component: Header, Footer, Home
    },
  ];