@arsenalfangun

Для чего во Vue data пишется таким образом?

Для чего объект data заключен в круглые скобки? Почему нельзя сделать так: data: {} или data: () => {}
5fa7c27b5b4c7200236670.png
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
@dGololobov
начинающий
Внутри Vue data вызывается как функция. Т.е. в момент когда vue готово обратиться к параметрам data там происходит такой вызов:

data()

Соответственно прямое обращение к data объявленному как объект ( data: {} ) вызовет ошибку Uncaught TypeError: data is not a function.

Теперь о втором варианте. data: () => {} - такое объявление подразумевает, что внутри блока {} будут какие условия.
А после вызова функции data() vue ожидает в результате получить объект.

При использовании стрелочной функции нам остается использовать два варианта по сути:
Краткая запись:
data: () => ({ param: 1 }) //Возвращает объект
Расширенная запись:
data: () => {
 return {
     param: 1 
  }
}


Если осталось много неясных моментов то можете попробовать прочитать вот эту статью
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
delphinpro
@delphinpro
frontend developer
Потому что в документации по Vue это даже вынесено в отдельный подраздел: свойство data в компонентах должно быть функцией, возвращающей объект данных.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы