@vuejs_ru

Страница 3268 из 3900
DimenSi
17.07.2018
13:26:18
А как же он видит изменения? ))))
ты че из ангуляра сбежал?

Evgeny
17.07.2018
13:26:24
а если у тебя список?

Pavel
17.07.2018
13:26:43
ты че из ангуляра сбежал?
Ну ответь же мне друг )

DimenSi
17.07.2018
13:26:52
Ну ответь же мне друг )
через set, get свойства обьекта

Google
Pavel
17.07.2018
13:26:52
Как Вью видит изменения

Дмитрий Maestro
17.07.2018
13:27:11
да вот крутой

пытаюсь понять

DimenSi
17.07.2018
13:27:21
https://ru.vuejs.org/v2/guide/reactivity.html#ad

@pnkbizz читай

вникай

умней

Stanislav
17.07.2018
13:27:43
А как же он видит изменения? ))))
Он навешивает на свойства объекта свои геттеры и сеттеры. Когда дергается сеттер, происходит пересчет зависимостей и вью вызывает рендер. Это в общем

Pavel
17.07.2018
13:28:03
В силу ограничений современного JavaScript (и отказа от Object.observe), Vue не может отследить добавление или удаление свойства объекта.

Это почему так?

Pavel
17.07.2018
13:28:17
Потому что ссылка не изменяется

Google
Pavel
17.07.2018
13:28:30
А знаешь что в роадмапе? Proxies

Stanislav
17.07.2018
13:28:39
Это почему так?
Потому что на момент инициализации геттеров/сетеров, поля в объекте нет. Вешать не на что

Pavel
17.07.2018
13:28:44
И объекты будут меняться

Stanislav
17.07.2018
13:28:48
Причем тут ссылка?

DimenSi
17.07.2018
13:28:59
не знаю, он кажется одно слово запомнил и теперь как попугай

Pavel
17.07.2018
13:29:46
не знаю, он кажется одно слово запомнил и теперь как попугай
Никит, с незнакомыми людьми надо уважительно общаться. С возрастом поймешь

Stanislav
17.07.2018
13:31:07
dirty-checking popugai.
ну хватит

Rafael
17.07.2018
13:31:15
Pavel
17.07.2018
13:31:57
Итак, попробую доходчиво: 1. Мы объявляем свойства в дате, примитивы и объекты 2. Вью навешивает на них вотчеры 3. При изменении - перерисовывает дом, правильно?

Pavel
17.07.2018
13:34:39
Когда мы меняем примитивы - меняется ссылка на примитив и Вью сразу же видит изменения. Когда мы меняем поле у объекта - ссылка остается той же самой, поэтому для изменения объекта мы должны пользоваться кострукцией Vue/set

То же самое с массивами, с той лишь разницей, что Вью подменяет часть методов

Поэтому push и тд работают реактивно

Pavel
17.07.2018
13:36:21
Сейчас идет работа над внедрением прокси, это даст возможность менять объекты реактивно, но уберет поддержку ие

Да знаю я как все устроено во Вью. Но чтоб геттер сработал - Вью должен знать, что изменения произошли! )))

Google
Rafael
17.07.2018
13:37:44
Давай я задам тебе вопрос, на который ты не знаешь ответ

Pavel
17.07.2018
13:37:45
Ну не все )))

Rafael
17.07.2018
13:38:05
Тогда слушай Стаса - он хуйни не скажет

Pavel
17.07.2018
13:38:12
@Fl0pZz но разве я не верно толкую?

Rafael
17.07.2018
13:38:22
Не так. Знаешь как геттеры/сеттеры работают?
Этот вопрос для тебя актуален

DimenSi
17.07.2018
13:39:28
вью не проверяет ссылки, он реагирует на эвенты которые создают геттеры и сеттеры.

Stanislav
17.07.2018
13:39:30
Pavel
17.07.2018
13:41:41
А эвенты создаются когда? Допустим у нас задан в дате a: 0, b: {} Мы в методе меняем a = 1, b.c = 2 для a эвент стрельнет, для b нет, правильно?

Aleksandr
17.07.2018
13:42:58
Подойдёт но второе дешевле
Спасибо, шторм просто уже есть, а по проекту с vue надо начать работать

Andrey
17.07.2018
13:44:03
Ребят, кто использовал styled components внутри Vue - есть ли смысл или проще пойти через css модули? Так то я в реакте стайлед фан, но тут из-за шаблонизатора оно выглядит слегка избыточно, но душа, так сказать, уже лежит к стайлед

Stanislav
17.07.2018
13:45:09
Pavel
17.07.2018
13:45:33
Stanislav
17.07.2018
13:45:46
Да, потому что ты меняешь ссылку на объект
нет, потому что сеттер срабатывает

Pavel
17.07.2018
13:45:57
ну а срабатывает-то он почему?

DimenSi
17.07.2018
13:46:06
Из за присвоения

Stanislav
17.07.2018
13:46:07
ну а срабатывает-то он почему?
потому что он там есть

Pavel
17.07.2018
13:46:23
а почему не срабатывает в первом случае?

Google
Pavel
17.07.2018
13:46:38
да

DimenSi
17.07.2018
13:46:53
а почему не срабатывает в первом случае?
Потому, что при присвоении, Вью обходит свойство рекурсивно

Stanislav
17.07.2018
13:47:00
да
Потому что поля c нету изначально. Вью не навесил на него сеттер

Дмитрий
17.07.2018
13:47:07
День добрый. Как решаете проблему с большим разрешением изображений? На сервере gzip настраиваете или что-то др используете? Если какие-то конкретные модули для Nuxt?

Pavel
17.07.2018
13:50:01
@c01nd01r Вот таким образом навешиваются геттеры/сеттеры, так? Object.defineProperty(obj, key, { enumerable: true, configurable: true, get:function(){ return value; }, set:function(newValue){ if(value !== newValue){ value = newValue; tellTheWorldIhaveChanged(); //somebody is watching! } } });

Admin
ERROR: S client not available

Pavel
17.07.2018
13:50:33
if(value !== newValue)

сравниваем ссылки

Alex
17.07.2018
13:51:01
Привет, как лучше передавать значение из компонента с инпутом в родитель? Эмитеть ивент? Использовать sync? Или как то еще?

Pavel
17.07.2018
13:51:04
https://blog.cloudboost.io/reactivity-in-vue-js-2-vs-vue-js-3-dcdd0728dcdf

отсюда

Rafael
17.07.2018
13:51:42
if(value !== newValue)
вообще-то нет

если бы это были ссылки, то одинаковые литералы строк не были бы равны

Дмитрий
17.07.2018
13:52:12
Ну, тут вариант то везде одинаков -srcset
ну это я должен записывать конкретные разрешения, а автоматически какие-то модули есть?

Кто-то использует image-webpack-loader? Есть ли смысл использовать или с этим справится gzip?

Pavel
17.07.2018
13:53:26
Rafael
17.07.2018
13:53:53
А как?
в случае строк это лексикографическое сравнение, в случае чисел, сравниваются числа по значению

Google
Rafael
17.07.2018
13:53:58
а не по ссылке

Pavel
17.07.2018
13:54:20
Да, совершенно верно. Я не правильно выразился

По ссылке сравниваются объекты

Rafael
17.07.2018
13:54:59
По ссылке сравниваются объекты
коими примитивы не являются

Rafael
17.07.2018
13:55:35
https://blog.cloudboost.io/reactivity-in-vue-js-2-vs-vue-js-3-dcdd0728dcdf
и почему этот пример не будет рабоать - потому что он абстрактный

Pavel
17.07.2018
13:55:54
И мы приходим к тому, что во Вью реактивны из коробки только примитивы, так?

полностью реактивны

DimenSi
17.07.2018
13:57:11
Я не знаю, что он пытается нам доказать.

Pavel
17.07.2018
13:57:19
Ладно, закроем тему )

DimenSi
17.07.2018
13:57:35
https://github.com/vuejs/vue/blob/dev/src/core/observer/index.js#L134

Alex
17.07.2018
13:58:17
Однонаправленный поток данных?
Кароч vuex смотреть, понял)

Anton
17.07.2018
13:58:56
Кароч vuex смотреть, понял)
Если они родительские, то vuex выглядит избыточным решением

*родитель-потомок

Дмитрий
17.07.2018
13:59:58
Какие данные смотреть в результатах webpack-bundle-analyzer? Stat size или Gzipped size?

DimenSi
17.07.2018
14:03:09
Gziped у тебя на беке может быть настроен слабей и или сильней, поэтому наверно лучше stat

Дмитрий
17.07.2018
14:05:01
DimenSi
17.07.2018
14:05:31
Прогонял через tiny png и gzip

Дмитрий
17.07.2018
14:06:26
Прогонял через tiny png и gzip
А если пользователь загружает изображения, а потом они на сайте используются? Gzip?

Andrey
17.07.2018
14:06:38
Прогонял через tiny png и gzip
Но всегда отдаешь только один размер?

Страница 3268 из 3900