Suponiendo que tiene una propiedad (o computed , o data ) que contiene la información sobre si el usuario está editando actualmente su perfil (llamémoslo isEditingProfile ), solo proporciónelo en input :readonly , así:
new Vue({ el: '#app', data: () => ({ isEditingProfile: false, username: '' }) }) <script src="https://v2.vuejs.org/js/vue.min.js"></script> <div id="app"> <input v-model="username" :readonly="isEditingProfile"> <label> <input type="checkbox" v-model="isEditingProfile"> Is editing profile </label> </div> Nota: He hecho isEditingProfile editable aquí para mostrar que está funcionando. En su aplicación, vincúlela a cualquier lógica que deba controlarla. Lo más probable es que necesite un computed para ello.