Все переменные, используемые в теге template
отдельного файлового компонента, в основном имеют префикс this
при интерпретации Vue.Поэтому, чтобы сделать определенные переменные доступными, мы должны прикрепить их к экземпляру текущего компонента.
Простое решение для большинства случаев, особенно, если это локально / редко используемая переменная, это присвоить класс Errors
Опция data
компонента:
data () {
return {
user: JSON.parse(this.userArray),
errors: new Errors()
}
},
methods: {
onSubmit() {
axios.post(this.route, this.user)
.then(response => alert('Success'))
.catch(error => this.errors.record(error.response.data));
}
}
Я поместил туда ключевое слово new
, поскольку эта реализация имеет смысл, если каждый компонент будет использовать свой собственный экземпляр класса Errors
.
Если цель состоит в том, чтобы совместно использовать класс Errors
и мешок ошибок доступа в приложении, его можно добавить к Vue.prototype
и получить доступ через this
из любого компонента. Здесь - одна из многих статей, помогающих создать пользовательский плагин.
В зависимости от цели, которую пытается реализовать текущая реализация, могут быть лучшие варианты, например mixins илиповторно используемые компоненты ошибок / предупреждений, которые могут обрабатывать ответы об ошибках.