Допустим у нас есть такой код
data() {
return {
payinRange: window.__DATA__.payinRange,
payinStruct: window.__DATA__.payinStruct
}
}
2 раза не очень хочется обращаться к глобальному объекту, по этому я хотел использовать getter и сделать например так:
DATA: window.__DATA__,
get payinRange () { this.DATA.payinRange },
get payinStruct () { this.DATA.payinStruct },
но тогда переопределяется контекст вызова ф-ции и this.DATA уже undefined, есть ли способ присвоить значения в data не обращаясь 2 раза к глобальной переменной?
Нужно инициализировать данные в хуках жизненного цикла Vue, если начальных значений нет можно указать null или пустой строкой '':
// es6
...
data() {
return {
payinRange: null,
payinStruct: null
}
},
created() {
// let data = ... // ? но зачем
// const DATA = window.__DATA__; // ? но зачем
// Лучше добавить валидацию и предупреждения об ошибках
// window.__DATA__ = window.__DATA__ || {}
// this.payinRange = window.__DATA__.payinRange || <default value>
this.payinRange = window.__DATA__.payinRange
this.payinStruct = window.__DATA__.payinStruct
},
...
На заметку: Объект присваивается и копируется «по ссылке». В переменной хранится не сам объект, а адрес в памяти.
Используйте Vuex для управления состоянием приложения.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости