Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

228
Vistas
El mismo componente Vue.js en dos pestañas del navegador hace que <select> refleje sus valores seleccionados

Tengo una aplicación Vue, uso vue-router y algunos componentes renderizados en x-templates. En una de esas plantillas de marcado, tengo un objeto <seleccionar>. Cuando abro esta página en dos pestañas separadas en la misma sesión del navegador, cambié las selecciones en una pestaña que se refleja en la otra pestaña. Primero pensé que eran los datos y los métodos, pero luego agregué un <select> completamente vainilla con algunas <opciones> en él, sin enlaces, datos, controladores de eventos ni nada, ¡y se comporta igual! Cuando selecciono una opción en una pestaña, selecciona lo mismo en la otra. Es lo mismo para otros objetos < select > en la misma aplicación.

No puedo explicarlo. ¿Qué me estoy perdiendo? ¿Necesito mantener sesiones para evitar esto? ¿Si es así, cómo?

Editar: ahora me resulta evidente que todos los objetos se comportan de la misma manera y se reflejan entre las sesiones. Esto tiene que ser por diseño, pero ¿cómo hago para separarlo con un buen patrón en Vue.js?

Aplicación.js

 Vue.use(VueRouter) const router = new VueRouter({ mode: 'history', base: "/", routes: [ { path: '/', name: "start", component: Start, }, { path: '/character/view/:guid', name: "character.view", component: ViewCharacter, } ] }) new Vue({ router, el: '#app', data: function() { return { baseUri: "/" } }, computed: { } })

HTML

 <html> .... <script type="text/x-template" id="template-character-sheet"> <div> <select> <option>1</option> <option>2</option> </select> </script> ... <script src="/components/ViewCharacter.js"></script> <script src="/components/App.js"></script> ... </html>

ViewCharacter.js (piezas)

 const ViewCharacter = { template: "#template-character-sheet", components: { "navigation": Navigation }, data: function() { return { properties: values, ....... } }, computed: { current_stability: function() { return this.rules.stability_levels.filter(o => o.level == this.character.stability)[0]; }, ....... }, ....... }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

[No probado]

Creo que su problema es tener la misma :key en ambos <select> , intente agregar una clave generada para resolver el problema.

Documentos: https://v3.vuejs.org/guide/migration/key-attribute.html

over 4 years ago · Santiago Trujillo Denunciar

0

Fusión cerebral. Me estaba olvidando de que la sincronización del navegador se estaba ejecutando en la cadena de herramientas para servir el contenido. Cambiado para servir, y el problema obviamente desapareció.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda