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

429
Visualizações
Restablecer a los datos iniciales en vuejs, pero solo para algunos de los valores

El siguiente código para un componente vuejs establece con éxito el estado inicial de los datos para el nombre del jugador, la hora y los errores. Extraer los datos iniciales a una función me permite restablecer fácilmente los datos al estado inicial.

Genial... pero... solo quiero que el tiempo y el error se restablezcan al estado inicial y quiero que el nombre del jugador continúe.

¿Hay una forma recomendada de lograr esto? Parece que solo puedo encontrar enfoques de todo o nada o un enfoque torpe para restablecer manualmente que requerirá que recuerde si cambio en el futuro.

Agradezco su mirada y cualquier ayuda.

 function initialState (){ return { playerName: '', time: 0, errors: 0 } } //In my component: data: function (){ return initialState(); } //Call this method when I want to start over methods:{ reset: function (){ Object.assign(this.$data, initialState()); } }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Puede tomar el estado inicial y volver a fusionar sus guardianes con él antes de reasignarlos así con una combinación en línea súper abreviada:

 export default { data: () => ({ playerName: '', time: 0, errors: 0 }) methods: { reset () { const playerName = ...this.playerName; // Use Spread (...) to clone this.playerName so we don't assign a reactive copy that becomes blank again. return Object.assign(this.$data, { ...this.$options.data(), playerName }) } } }

La combinación en línea { ...this.$options.data(), playerName } es una característica de ES6, la inyección de playerName es lo mismo que escribir:

 { ...this.$options.data(), playerName: ...this.playerName }

¿Qué está haciendo this.$options.data() ?

 { ...{ playerName: '', time: 0, errors: 0 }, playerName: ...this.playerName },

Los tres puntos se denominan Sintaxis extendida , básicamente se trata de fusionar el objeto data en nuestro nuevo {} objeto vacío y luego sobrescribir los atributos después de la inyección.

Este total es el equivalente a escribir:

 Object.assign(this.$data, () => { const data = { playerName: '', time: 0, errors: 0 } data.playerName = ...this.playerName return data }())
over 4 years ago · Santiago Trujillo 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