Допустим, у меня есть компонент (один файловый компонент):
// Cat.vue
export default {
data() {
return {
actionsPredefined: {
eat () => (console.log('eat')),
purr () => (console.log('purr')),
meow () => (console.log('meow')),
}
}
}
}
, который расширен на:
// Lion.vue
export default {
extends: Cat,
data() {
return {
actions: {
eat: this.actionsPredefined.eat, // is undefined - why?
purr: this.actionsPredefined.purr, // is undefined - why?
roar () => (console.log('roar'))
}
}
}
}
Теперь, когда я использую Lion.vue, я получаю:
[Vue warn]: Ошибка в data (): «Ошибка типа: Ошибка чтения свойства« есть »из неопределенного» * 1010 *
Похоже, this.actionsPredefined
не определено в Lion.вю.
Как правильно выбрать выборочное объединение actionsPredefined
расширенного компонента (Cat.vue) с actions
расширяющего компонента (Lion.vue)?
В Lion.vue,когда я перемещаю actions
из data
в computed
Vue знает, что такое this.actionsPredefined
, но я не могу переместить его в computed
(потому что мне нужно иметь возможность изменить actions
другими методами и изменить вычисленные значения... явно против идеи использования вычисленных значений и не будет работать).
Я также могу установить actions
пусто в Lion.vue
данных и заполнить их только с помощью predefinedActions
в created()
hookи это будет работать, но почему-то это не похоже на правильный способ сделать это.