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

290
Vistas
VueJS: cree una copia de solo lectura de un objeto ref (API de composición)

Obtengo datos de db mediante el gancho onMounted y muestro el objeto en un formulario. Cuando el usuario hace clic para guardar, solo quiero verificar si los datos del objeto han cambiado o no.

 onMounted(async () => { loadingBasic.value = true const doc = await getDocument('workspaces',props.uid) //doc is ref({}) also wspace.value = doc.value loadingBasic.value = false })

Creé un objeto de solo lectura, pero cuando el objeto wspace ha cambiado, el objeto de solo lectura también cambia. ¿Cómo puedo crear una copia inicial sin cambios de un objeto ref?

Por cierto, ¿existe otra manera fácil de verificar los cambios en el formulario?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Está copiando solo la referencia con wspace.value = doc.value Puede copiar valores con:

 wspace.value = {...doc.value} 

 let doc1 = {a: 1, b:2} let doc2 = {a: 1, b:2} let wspace1 = doc1 let wspace2 = {...doc2} wspace1.a = 3 wspace2.a = 3 console.log('wspace1 :', wspace1) console.log('doc1 :', doc1) console.log('wspace2 :', wspace2) console.log('doc2 :', doc2)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Algunas sugerencias :

  • En lugar de shallow copy , debe hacer deep copy de un objeto para mantener el estado inicial. Puedes comprobar la diferencia en ambos aquí .
  • Para crear una copia profunda de un objeto, puede probar cualquiera de los siguientes métodos :
    • JSON.parse(JSON.stringify(object))
    • Usando el operador de propagación {...obj} y asignando el resultado a una nueva variable.
  • Para comparar rápidamente el objeto modificado y original sin ninguna iteración. Si los objetos a comparar tienen propiedades en el mismo orden, puede usar JSON.stringify() .

demostración:

 const doc = { value: { id: 1, name: 'alpha' } }; // making a deep copy const deepCopy = {...doc.value} // As user did not make any changes in the form. Comparision should return true. console.log(JSON.stringify(deepCopy) === JSON.stringify(doc.value)); // True // User making some changes in the form. deepCopy.id = 2; deepCopy.name = 'beta'; // As user make changes in the form data. Comparision should return false. console.log(JSON.stringify(deepCopy) === JSON.stringify(doc.value)); // False

about 4 years ago · Juan Pablo Isaza 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