<template> <div> value: {{ obj.c }} <my-input v-model="obj.c"/> <my-input :value="obj.c" @change="(val) => (obj.c = val)"/> </div> <template> <script> export default { data(){ return { obj: {} } } } </script> my-input es un componente del cliente. v-model actualizará la Vista, pero el otro no. Estos dos métodos son inequivalencia? ¿Qué más hizo el 'v-model'?
v-model es un atributo de enlace de datos bidireccional para entradas de formulario y :value es un atributo de enlace de datos unidireccional que enlaza un valor de JavaScript en la plantilla y para actualizar el valor podemos usar v-on:input además de :value
demostración :
new Vue({ el: '#app', data: { vModelMessage: 'Hello Vue.js!', valueMessage: 'Hello Vue.js!' } }) <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="app"> <input type="text" v-model="vModelMessage"/> {{ vModelMessage }} <br><br> <input type="text" :value="valueMessage" v-on:input="valueMessage = $event.target.value"/> {{ valueMessage }} </div>