Startec

Startec

[DÚVIDA] Rota Dinâmica com NuxtJs · pedrosouza458

Mai 17, às 04:16

·

2 min de leitura

·

0 leituras

Estou fazendo um projeto de Ecommerce com Nuxtjs e Typescript, e até então não estava tendo problemas com página _slugs (páginas dinâmicas), mas quando resolvi implementar pesquisa no meu...
[DÚVIDA] Rota Dinâmica com NuxtJs · pedrosouza458

Estou fazendo um projeto de Ecommerce com Nuxtjs e Typescript, e até então não estava tendo problemas com página _slugs (páginas dinâmicas), mas quando resolvi implementar pesquisa no meu site, encontrei problemas que irei relatar a seguir (traduzi minha pergunta do StackOverFlow):

eu tenho um componente de menu que tem a função de ir para uma rota _slug, que é a seguinte (eu tentei simplificar o código ao máximo):

<template>
 <input @keydown.enter="search" type="text" v-model="term" id="groupId" placeholder="Pesquisar"
 class="rounded-lg pl-10 bg-[#E6E6E6] text-[#818181] h-7">
</template>
<script lang="ts">
export default {
 name: 'Products',
 data(): {} {
 return {};
 },
 async mounted() {
 this.get()
 },
 methods: {
 search() {
 const searchUrl = `/search/${this.term}`;
 try {
 this.$router.push(searchUrl);
 console.log(this.term);
 } catch (error) {
 console.error(error);
 }
 console.log(this.term)
 },
 async get() {
 // retorna dados do banco 
 },
 }
}
</script>

a função funciona se eu já estou no _slug (que eu testei usando a url), exemplo:

http://localhost:3000/search/termoqueeupesquisei

a rota dinâmica (_slug) da pesquisa é mais ou menos assim:

<template>
// mostra dados do(s) produto(s), se houver
</template>
<script lang="ts">
export default {
 name: 'Products',
 data(): { products: Product[] } {
 return { products: [] };
 },
 async mounted() {
 this.get()
 },
 methods: {
 async get() {
 // query pro banco
 },
 }
}
</script>

mas em outras páginas, como na página home, que é essa:

<template>
 <div>
 <Menu></Menu>
 <MainBanner></MainBanner>
 <Products></Products>
 </div>
</template>
<script lang="ts">
export default ({
 name: 'IndexPage',
})
</script>

a função não funciona, ela até executa, mas com o comportamento estranho, vou tentar explicar:

o url da home:

http://localhost:3000/

redireciona pro _slug (do jeito certo):

http://localhost:3000/search/termoqueeupesquisei

mas então ela muda a rota para essa (em mili segundos):

http://localhost:3000/?

e volta pro url de origem;

http://localhost:3000/

Coisas que eu já tentei

  • checar no console se o termo está chegando (ele chega normalmente em toda página que tem o componente do menu)
  • remover todos os componentes e deixar só o menu
  • usar replace ou invés de push no método da rota
  • mudar formato do método de rotas
  • usar botão ao invés do input

estou ficando sem ideias, se algúem souber algo ficaria agradecido se algúem me ajudasse


Continue lendo

Showmetech

Motorola Razr Plus é o novo dobrável rival do Galaxy Z Flip
Após duas tentativas da Motorola em emplacar — novamente — telefones dobráveis, eis que temos aqui a terceira, e aparentemente bem-vinda, tentativa. Estamos falando do Motorola Razr Plus, um smartphone...

Hoje, às 15:20

DEV

Mentoring for the LGBTQ+ Community
Once unpublished, all posts by chetanan will become hidden and only accessible to themselves. If chetanan is not suspended, they can still re-publish their posts from their dashboard. Note: Once...

Hoje, às 15:13

TabNews

IA: mais um arrependido / Déficit de TI / Apple: acusação grave · NewsletterOficial
Mais um pioneiro da IA se arrepende de seu trabalho: Yoshua Bengio teria priorizado segurança em vez de utilidade se soubesse o ritmo em que a tecnologia evoluiria – ele junta-se a Geoffr...

Hoje, às 14:37

Hacker News

The Analog Thing: Analog Computing for the Future
THE ANALOG THING (THAT) THE ANALOG THING (THAT) is a high-quality, low-cost, open-source, and not-for-profit cutting-edge analog computer. THAT allows modeling dynamic systems with great speed,...

Hoje, às 14:25

TabNews

[DISCUSÃO/OPINIÕES] – Outsourcing! O que, para quem, por que sim, por que não! · dougg
Quero tentar trazer nesta minha primeira publicação, uma mistura de um breve esclarecimento sobre o que são empresas de outsourcing, como elas funcionam e ganham dinheiro, mas também, ven...

Hoje, às 13:58

TabNews

Duvida: JavaScript - Desenvolver uma aplicação que vai ler um arquivo *.json · RafaelMesquita
Bom dia a todos Estou estudando javascript e me deparei com uma dificuldade e preciso de ajuda *Objetivo do estudo: *desenvolver uma aplicação que vai ler um arquivo *.json Conteudo do in...

Hoje, às 13:43

Showmetech

Automatize suas negociações com um robô de criptomoedas
Índice Como o robô de criptomoedas Bitsgap funciona?Qual a vantagem de utilizar um robô de criptomoedas?Bitsgap é confiável? O mercado de trading tem se tornado cada vez mais popular e as possibilidades de...

Hoje, às 13:13

Hacker News

Sketch of a Post-ORM
I’ve been writing a lot of database access code as of late. It’s frustrating that in 2023, my choices are still to either write all of the boilerplate by hand, or hand all database access over to some...

Hoje, às 13:11

Showmetech

14 chuveiros elétricos para o banho dos seus sonhos
Índice Chuveiro ou Ducha?Tipos de chuveiro elétrico9 fatores importantes para considerar na hora de comprar chuveiros elétricosMelhores chuveiros elétricosDuo Shower LorenzettiFit HydraAcqua Storm Ultra...

Hoje, às 11:00

DEV

Learn about the difference between var, let, and const keywords in JavaScript and when to use them.
var, let, and const: What's the Difference in JavaScript? JavaScript is a dynamic and flexible language that allows you to declare variables in different ways. You can use var, let, or const keywords to...

Hoje, às 10:21