Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

382
Views
Diferencia entre reloj y $ reloj

Sólo una pregunta sencilla.

¿Cuál es la diferencia entre opciones y métodos de instancia?

Según el ejemplo del reloj, podemos implementar el observador como una opción ( https://v3.vuejs.org/api/options-data.html#watch ) y un método de una instancia ( https://v3.vuejs.org /api/instance-methods.html#watch ).

Desde mi punto de vista, puedo implementar exactamente la misma característica con ambos métodos y las únicas diferencias serían la sintaxis y el lugar de implementación.

Si me equivoco, ¿alguien puede explicarme con un ejemplo la diferencia entre estos dos?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

De hecho, tiene (casi) razón con su suposición.

Hay 2 ventajas principales de this.$watch() .

  1. Puedes empezar a mirar dinámicamente
  2. el valor de retorno de this.$watch() es una función de desobservación con la que puede detener dinámicamente al observador durante el tiempo de ejecución

Pero eso no significa necesariamente que siempre debas usar this.$watch() over watch: {} . Lo contrario. Siempre debes pensar en lo que necesita tu caso de uso

Unwatch-ejemplo:

 export default { //.. created(props) { const unwatchAge = this.$watch(() => this.user.age, (value, oldValue) => { if (value >= 18) { alert('You are now allowed to drive a car!'); unwatchAge(); //we don't need age watching for anything else } }); } //... }

Por cierto, con VUE3 es posible que desee ver los métodos API de composición watch() / watchEffect() .

watch() hace lo mismo que watch: {} y this.$watch() y también tiene un método unwatch como valor de retorno.

watchEffect() comprueba cualquier valor mencionado dentro del parámetro (función) y pone un observador en él internamente.

watch() Ejemplo (composición)

 import { toRef, watch} from 'vue'; export default { //... setup(props) { const age = toRef(props.age); const unwatchAge = watch(age, console.log); // no () => age or () => age.value needed as age is a reference by using toRef and references can be handles like this setTimeout(() => { console.warn('unwatching age!'); unwatchAge(); }, 5000); } //... }

watchEffect() Ejemplo (composición)

 import { toRef, watchEffect} from 'vue'; export default { //... setup(props) { const age = toRef(props.age); watchEffect(() => { if (age.value >= 18) { alert('You are now allowed to drive a car!'); } }); //vue will internally recognize that age has to be watched here. No telling it manually. } //... }
over 4 years ago · Santiago Trujillo Report

0

La principal diferencia con respecto a los documentos es que el instance method devuelve un unwatchable que no se puede ver que puede activar para dejar de ver una determinada propiedad:

 const unwatchUsers = this.$watch('users', () => {}); setTimeout(unwatchUsers, 1000);

Esto no es posible con la API de options . Es extremadamente útil usar este unwatch devuelto por this.$watch cuando algo sucede en su aplicación.

Tenga en cuenta cuál es el más apropiado para su caso de uso y utilícelo en consecuencia

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!