Documentation
Feedback
Guides
Learning Center

Learning Center
Learning Center
Página de pesquisa
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

{"base64":"  ","img":{"width":2492,"height":1542,"type":"png","mime":"image/png","wUnits":"px","hUnits":"px","length":1327882,"url":"https://user-images.githubusercontent.com/18701182/69843114-d6db6500-1244-11ea-82a7-b10880e2ed55.png"}}

Acabamos de implementar nossa página de produto e estamos avançando para a página de pesquisa. Ambos são semelhantes no sentido de que ambos têm blocos que são únicos neste contexto. Vamos explorar os blocos de forma desordenada, sem pensar no design da página, por enquanto, apenas para ter uma ideia de seu comportamento.

Começando com o Search Layout

Da mesma forma que outros modelos, store.search também pode ser flexível. Para construir um layout único, você precisará usar um bloco chamado search-result-layout.


_10
{
_10
"store.search": {
_10
"blocks": ["search-result-layout"]
_10
}
_10
}

O search-result-layout, por sua vez, deve conter outros 3 blocos:

  • search-result-layout.desktop
  • search-result-layout.mobile
  • search-not-found-layout

Como você já percebeu, os dois primeiros definem qual layout será exibido no desktop e celular respectivamente, enquanto o terceiro define o layout da página de pesquisa sem resultados.


_12
{
_12
"store.search": {
_12
"blocks": ["search-result-layout"]
_12
},
_12
"search-result-layout": {
_12
"blocks": [
_12
"search-result-layout.desktop",
_12
"search-result-layout.mobile",
_12
"search-not-found-layout"
_12
]
_12
}
_12
}

Nesse curso, vamos focar na implementação do layout para desktop.

Blocos de Busca

A documentação dos resultados da pesquisa oferece uma boa referência para blocos que podem ser usados ​​em um contexto de pesquisa. Esta etapa se concentrará em destacar os principais:

  • Breadcrumb de pesquisa (breadcrumb.search);
  • Título de pesquisa (search-title.v2);
  • Total de produtos encontrados (total-products.v2);
  • Ordenação de produtos (order-by.v2);
  • Botão Mostrar mais resultados (search-fetch-more);
  • Mostrar botão de resultados anteriores (search-fetch-previous);
  • Filtro de navegação (filter-navigator.v3);
  • Resultados da pesquisa (search-content)

Embora serem muitos, todos esses blocos são relativamente simples e funcionam muito bem sem a necessidade expressa de configurar suas props.

Atividade

{"base64":"  ","img":{"width":3265,"height":3295,"type":"png","mime":"image/png","wUnits":"px","hUnits":"px","length":1279025,"url":"https://user-images.githubusercontent.com/18701182/69843046-7f3cf980-1244-11ea-8309-8a26071cd6f0.png"}}

Copie os códigos acima no arquivo search.jsonc e defina a search-result-layout.desktop contendo o seguinte, na ordem abaixo:

  • breadcrumb.search;
  • search-title.v2;
  • total-products.v2;
  • order-by.v2;
  • search-fetch-previous;
  • search-content;
  • filter-navigator.v3;
  • search-fetch-more.

Para isso, escreva um código similar a este:


_15
...
_15
},
_15
"search-result-layout.desktop": {
_15
"children": [
_15
"breadcrumb.search",
_15
"search-title.v2",
_15
"total-products.v2",
_15
"order-by.v2",
_15
"search-fetch-previous",
_15
"search-content",
_15
"filter-navigator.v3",
_15
"search-fetch-more"
_15
]
_15
}
_15
...

Note: Lembre-se de olhar a documentação caso tenha dúvidas ao longo da atividade.

Answer sheet

See answer sheet for search.jsonc
search.jsonc

_25
// store/blocks/search.jsonc
_25
{
_25
"store.search": {
_25
"blocks": ["search-result-layout"]
_25
},
_25
"search-result-layout": {
_25
"blocks": [
_25
"search-result-layout.desktop",
_25
"search-result-layout.mobile",
_25
"search-not-found-layout"
_25
]
_25
},
_25
"search-result-layout.desktop": {
_25
"children": [
_25
"breadcrumb.search",
_25
"search-title.v2",
_25
"total-products.v2",
_25
"order-by.v2",
_25
"search-fetch-previous",
_25
"search-content",
_25
"filter-navigator.v3",
_25
"search-fetch-more"
_25
]
_25
}
_25
}

On this page