Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

109
Visualizações
Actualizar parámetros de ruta cuando cambia la selección

En mi aplicación Vue.js (2.x) tengo un componente que representa un buzón, es decir, muestra una lista de mensajes. La ruta del componente se define así:

 { path: '/messages/:messageId', name: 'messages', component: Messages, // this sets the component's messageId prop to the same value as the route param props: true }

Cuando se crea el componente, los mensajes se cargan desde el servidor. Si se especifica el parámetro de ruta messageId , el mensaje con este ID se seleccionará inicialmente

 props: { messageId: { type: String, required: false, default: null } }, data () { return { allMessages: [], selectedMessage: null } }, async created () { this.allMessages = await messageService.loadMessages() if (this.messageId) { this.selectedMessage = this.allMessages.find(message => message.id == this.messageId); } }

Cuando el usuario hace clic en un mensaje, se actualiza el mensaje selectedMessage . También me gustaría actualizar el parámetro de ruta messageId para que el usuario pueda (por ejemplo)

  • haga clic en un mensaje
  • copie la URL (actualizada) de la barra de direcciones del navegador
  • abra una nueva pestaña y pegue la URL para volver a cargar la página con el mismo mensaje seleccionado

Sin embargo, no estoy seguro de cómo actualizar el parámetro de ruta cuando cambia el mensaje seleccionado. Supongo que podría hacer algo como

 methods: { onMessageSelected (selectedMessage) { this.selectedMessage = selectedMessage const params = { messageId: selectedMessage.id } this.$router.push({ name: 'messages', params: params } }) } }

Pero esto vuelve a cargar toda la ruta/componente, lo que hace que la lista de mensajes se vuelva a buscar, lo que es muy ineficiente. ¿Hay alguna manera de simplemente actualizar el parámetro de ruta en la URL sin recargar la ruta/componente?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Creo que podrías intentar:

 this.$router.push({ name: 'messages', params: params } })

O

 this.$router.push({ path: `/messages/${messageId}`})
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda