1.0.2 • Published 1 year ago

menu-navegacao v1.0.2

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

Menu Navegação

Sobre

Componente base para um menu de navegação de 3 níveis, indicado principalmente para criação de menus principais de navegação do site (os que ficam no cabeçalho).

Menu Navegação


Dependências

Store

PropDescriçãoTipoUso
screenWidth 1.1.3Variável encontrada no módulo principal da $store, responsável por conter o valor atualizado da largura da tela.Variável da $store.$store.state.screenWidth
toggleMenu 1.1.3Mutation contida no módulo de menu, que, pertence ao de cabecalho, com a função de alterar o valor da variável, existente no mesmo módulo, menuOpen, responsável por abrir ou fechar o menu.Mutation.$store.commit('cabecalho/menu/toggleMenu')
menuOpen 1.1.3Variável responsável pela abertura/fechamento do menu principal.Variável da $store.$store.state.cabecalho.menu.menuOpen
tipoImg 1.1.3Variável que contém o resultado da validação de dispositivo, assim fazendo com que em ambientes Mac o site use jpg/png e em outros ambientes, webp.Variável da $store.$store.state.tipoImg
menuData 1.1.3Variável que contém os dados do menu principal.Variável da $store.$store.state.cabecalho.menu.menuData

Instalação

  • Instale o app através do seu terminal
npm install @wapstore/menu-navegacao
  • Valide se seu arquivo package.json possui a dependência
"dependencies": {
  "@wapstore/menu-navegacao": "^1.1.3"
}

Agora a loja está apta para o uso da aplicação.


Uso

O componente de Menu Navegação pode ser inserido em qualquer lugar da pasta "components" ou "pages". Neste arquivo você pode inserir todas as props e slots que o componente aceita, além de seus estilos.


Exemplo

-Este é um exemplo da aplicação de um arquivo padrão para um Menu institucional no rodapé:

<template>
  <menu-navegacao :key="$route.fullPath">
    <template #logo>
      <img
        src="~/static/img/geral/logo.png"
        alt="Logo Loja"
        :width="90"
        :height="33"
      >
    </template>
    <template #arrow>
      <img src="~/static/img/geral/arrow.svg" alt="" width="5px" height="8px">
    </template>
  </menu-navegacao> 
</template>

<script>
import MenuNavegacao from '@wapstore/menu-navegacao';
export default {
  components: {
    MenuNavegacao
  },
  async fetch () {
    // Request do menu
    await this.$axios.request({
      method: 'get',
      url: '/v2/front/struct/menus/menu-principal'
    }).then(response => {
      this.$store.commit('cabecalho/menu/setMenu', response.data);
    }).catch(response => {
      console.error(response.response.data);
    });
  }
};
</script>
<style>
  ...
</style>

Recursos

Props

PropDescriçãoTipoValor padrão
enableClose 1.1.3Ativa/desativa o botão fechar do menu mobile.Booleantrue
bannerSize 1.1.3Define tamanho dos banners do menu desktop (caso haja).Object{ height: 400, width: 200 }
menuDropDown 1.1.3Ativa/desativa o formato de menu dropdown.Booleanfalse

Slots

SlotDescriçãoNameExemplo de uso
Logo 1.1.3Slot para inserção da logo no topo do menu mobile.logo<menu-navegacao><template #logo><img src="logo.png" alt="Logo"></template></menu-navegacao>
Botão fechar 1.1.3Slot para alteração do ícone do botão de fechar do menu.closeMenuBtIcon<menu-navegacao><template #closeMenuBtIcon><img src="icone.png" alt="icone"></template></menu-navegacao>
Arrow dos itens do menu 1.1.3Ícone de flecha para os itens do menu mobile.arrow<menu-navegacao><template #arrow><img src="arrow.png" alt="arrow"></template></menu-navegacao>
Área do usuário mobile 1.1.3Slot para personalização da área do usuário no mobile.areaUserMobile<menu-navegacao><template #areaUserMobile>/*...*/</template></menu-navegacao>
Label do botão voltar nível 2 1.1.3Use esse slot para alterar o texto dentro do botão voltar presente no nível 2 do mobile.labelBotaoVoltarTwo<menu-navegacao><template #labelBotaoVoltarTwo="{ data }">{{ data.parent.label }}</template></menu-navegacao>
Label do botão voltar nível 3 1.1.3Use esse slot para alterar o texto dentro do botão voltar presente no nível 3 do mobile.labelBotaoVoltarThree<menu-navegacao><template #labelBotaoVoltarThree="{ data }">{{ data.parent.label }}</template></menu-navegacao>
Elemento extra 1.1.3Use esse slot para adicionar uma estrutura extra no final do menu mobile.extra<menu-navegacao><template #extra>{{ data.parent.label }}</template></menu-navegacao>
SlotProps do slotDescriçãoTipo
Label do botão voltar nível 2 1.1.3dataInformação do elemento pai refente ao menu atual.Object
Label do botão voltar nível 3 1.1.3dataInformação do elemento pai refente ao menu atual.Object

Eventos

EventoDescriçãoArgumentos
hoverItemDesktop 1.1.3Evento emitido quando acontece o mouseover e o mouseleave no item nível do menu desktop.status: Descrição: Se for o evento mouseover é passado no argumento true, se for o evento mouselave é passado false. Tipo: Boolean.
beforeChangeSubmenuMobile 1.1.3Evento emitido antes da troca de subnível do menu mobile.nivelTo: Descrição: Nível para qual o usuário vai navegar. Tipo: Number. nivelFrom: Descrição: Nível que o usuário esta saindo. Tipo: Number
afterChangeSubmenuMobile 1.1.3Evento emitido depois da troca de subnível do menu mobile.currentNivel: Descrição: Atual nível, apos troca de subnível. Tipo: Number.

Estilização

Para a estilização, basta utilizar estilos sem escopos dentro do componente onde for inserido, utilizando sempre de um ID ou classe específica para a chamada do componente, para que em outras chamadas o estilo não influencie. Caso o estilo seja para várias chamadas do componente é recomendado a inserção dos estilos em um arquivos CSS separado.

Classes CSS

  • Navegação pelos subníveis do menu mobile
    • Descrição: Se você procura uma forma de estilizar o menu quando navegado para um certo subnível do menu.
    • Classes
      • menuPrincipal-subNiveis
        • Descrição: Essa classe é exibida quando um subnível diferente do nível zero está ativo.
      • menuPrincipal-currentNivel-{atualNivel}
        • Descrição: Essa classe é alterada conforme o nível atual do usuário, {atualNivelMenuMob} é a representação de um número, vai de 1 a nível 3. Exemplo: menuPrincipal-currentNivel-2.
1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago