Documentation
Feedback
Guides
Learning Center

Learning Center
Learning Center
Navigation & Routes
View in English
This content was migrated from the VTEX Learning Center and is no longer being actively maintained. For the most accurate and up-to-date information, please check the official documentation.

Introdução

Um dos pontos altos de uma boa aplicação de admin é garantir que está bem posicionada e que sua navegação é simples. Para controlar a navegação no menu lateral do admin VTEX existem dois arquivos que serão úteis: o navigation.json e o routes.json.

O navigation é o arquivo que define as regras de navegação na barra lateral do admin VTEX. Com ele você pode construir desde um link mais simples, em que um clique leva para sua app, como construir menus mais complexos com submenus associados.

{"base64":"  ","img":{"width":286,"height":418,"type":"png","mime":"image/png","wUnits":"px","hUnits":"px","length":20014,"url":"https://user-images.githubusercontent.com/18701182/92757455-21f1df00-f364-11ea-8798-87f8f73863c8.png"}}

routes.json

O routes é quem define as rotas e componentes react associados, da sua aplicação, qualquer componente que esteja mapeado para uma rota, deve ser declarado no routes, ainda que não esteja diretamente associado a um item de navegação no navigation.json.

Atividade

  1. Dentro da pasta admin/ criada no passo anterior, crie mais dois arquivos, o navigation.json e o routes.json

_10
|_ admin/
_10
+ |_ navigation.json
_10
+ |_ routes.json

  1. No navigation.json crie um objeto JSON com as propriedades section, titleId e path:

_10
{
_10
"section": "orders",
_10
"titleId": "admin-example.navigation.label",
_10
"path": "/admin/iotraining"
_10
}

  1. No routes.json atribua um component e um path para a navegação criada:

_10
{
_10
"admin.app.example": {
_10
"component": "adminExample",
_10
"path": "/admin/app/iotraining"
_10
}
_10
}

NOTA: O mapeamento de um navigation para uma route é feito através do path. O path deve divergir apenas por um /app/ no routes.json


_10
//navigation.json
_10
_10
/admin/{{seupath}}
_10
_10
//routes.json
_10
_10
/admin/app/{{seupath}}

  1. Para finalizar, crie um componente simples de hello world com o mesmo nome que você deu para o component no routes.json

_10
//react/adminExample.tsx
_10
import React, { FC } from 'react'
_10
_10
const AdminExample: FC = () => {
_10
return <h1>Hello, World!</h1>
_10
}
_10
_10
export default AdminExample

Link a aplicação (vtex link). O resultado deve ser o seguinte:

{"base64":"  ","img":{"width":737,"height":374,"type":"png","mime":"image/png","wUnits":"px","hUnits":"px","length":23519,"url":"https://user-images.githubusercontent.com/18701182/92773790-486b4680-f373-11ea-8d1b-c4b84dad4375.png"}}

Repare que o menu criado está sem nenhuma mensagem ainda, nós o evoluiremos posteriormente, clique no espaço em branco mostrado acima para ver a mensagem de Hello, World!.

Answer sheet

See answer sheet for adminExample.tsx
adminExample.tsx

_10
import React, { FC } from 'react'
_10
_10
const AdminExample: FC = () => {
_10
return <h1>Hello, World!</h1>
_10
}
_10
_10
export default AdminExample

See answer sheet for navigation.json
navigation.json

_10
{
_10
"section": "orders",
_10
"titleId": "admin-example.navigation.label",
_10
"path": "/admin/iotraining"
_10
}

See answer sheet for routes.json
routes.json

_10
{
_10
"admin.app.example": {
_10
"component": "adminExample",
_10
"path": "/admin/app/iotraining"
_10
}
_10
}

On this page