Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.06.2020, 14:33
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

Vue, аякс объект становится реактивным
Приветствую.
Получаю из json API обычный массив объектов

export default {
    props: [],
    data: function() {
        return {
            'cities' : null
        }
    },
    created: function() {
        axios.get('http://localhost:3000/cities', {
            
        })
        .then(response => {
            console.log(response.data); // (*)
            this.cities = response.data;
        });

,но прям сразу console.log(response.data); выдает результат как на приложенной картинке. Т.е. они уже изначально реактивные, прям сразу после аякса.
Не встречал описание такого в доках.
Что это за магия, где она происходит?
Изображения:
Тип файла: jpg jsforum.jpg (31.8 Кб, 7 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 03.06.2020, 15:48
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Vue при добавлении реактивности не заменяет объект, а изменяет переданный. Реактивность добавляется вот тут:
this.cities = response.data;
В консоли же вы видите объект на текущий момент, а не на момент вызова console.log.
__________________
29375, 35

Последний раз редактировалось Aetae, 03.06.2020 в 15:51.
Ответить с цитированием
  #3 (permalink)  
Старый 04.06.2020, 06:27
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

Спасибо.
Забыл про эту особенность console.log.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск