Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Vue, аякс объект становится реактивным (https://javascript.ru/forum/library-toolkit-framework/80426-vue-ayaks-obekt-stanovitsya-reaktivnym.html)

micscr 03.06.2020 14:33

Vue, аякс объект становится реактивным
 
Вложений: 1
Приветствую.
Получаю из 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); выдает результат как на приложенной картинке. Т.е. они уже изначально реактивные, прям сразу после аякса.
Не встречал описание такого в доках.
Что это за магия, где она происходит?

Aetae 03.06.2020 15:48

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

micscr 04.06.2020 06:27

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


Часовой пояс GMT +3, время: 01:09.