Как я могу гарантировать, что привязка обновляется на виртуальной машине до заполнения реквизитов компонента

#vue.js #vue-component

#vue.js #vue-компонент

Вопрос:

Итак, у меня есть свойство данных, которое заполняется из поля на моей виртуальной машине

 var vm = new Vue{
    data: {
        somevalue: null,
    },
}
 

Это значение привязывается к полю, которое предварительно заполняется при загрузке:

 <input v-model:somevalue="1" />
 

Затем я использую это значение и передаю его компоненту в качестве реквизита. В этом компоненте у меня есть функция, которая вызывается один раз и использует это значение.

 <some-component v-bind:propofsomevalue="somevalue"></some-component>

...
//the innards of the component
prop: ["propofsomevalue"]
ready: function(){
     //Does something with this.propofsomevalue
}
 

Проблема в ready / compile / attached и т.д., базовая виртуальная машина.somevalue еще не обновлена, и поэтому реквизит не обновляется до более позднего срока службы. Поэтому всякий раз, когда он запускает propofsomevalue, значение равно null. Как я могу выполнить эту функцию после вставки реквизита.

Это работает, если я напрямую передаю значение вместо использования привязки.

 <some-component v-bind:propofsomevalue="1"></some-component>
 

Это работает, но проблема в том, что это значение не является статическим и динамически заполняется на стороне сервера asp.

Большое спасибо!

Комментарии:

1. Почему бы не установить начальное свойство в экземпляре Vue, а не в пользовательском интерфейсе? С точки зрения «разделения проблем» инициализировать данные через пользовательский интерфейс нецелесообразно.

2. Извините за медленный ответ: у меня нет доступа к файлу JS, из которого я собираю значение.

Ответ №1:

Разве вы не можете просто поставить «наблюдение» на реквизит и выполнить действие, как только значение изменилось на что-то другое, кроме null?