Pull to refresh

Comments 12

Ответ на question — это все-таки answer, а не response.
Ну это авторские названия, не стал их менять в переводе.
Vue имеет ненавязчивую реактивную систему.

Простите, что? Ненавязчивая — это когда есть ещё какие-то способы, кроме стандартного. Вся реактивность Vue — именно что навязчивая (безотносительно других фреймворков).

У новичков в частности бывает такое — какие-то предварительно вычисляемые данные, инстансы библиотек (или ссылки на DOM) укладывают в data — ну, Vue.js послушно обвешивает всё своей реактивностью, хотя это просто никогда не нужно будет. В код-ревью с завидной регулярностью натыкаюсь на такое у разработчиков, которые с фреймворком уже год-полтора.

Поэтому, когда вы изучите основы и поработаете с ним годик в production — то обязательно поймете, что реактивность Vue.js — именно навязчивая. И, если вы об этом не помните — обязательно словите вагон проблем.

А куда надо запихивать такие данные, чтобы они были доступны в шаблоне?


(я новичок)

В data или vuex. Зависит от того, что нужно.
Так ведь стейт vuex тоже реактивен?
методы не реактивны, их возвращаемое значение можно вставить в шаблон
Константы можно задать в хуке created():
created(){
    this.PI = 3.14
}

PI будет доступна в шаблоне.
Ценный комментарий, спасибо! Буду это учитывать.
Я думаю под ненавязчивостью подразумевается то, что для изменения состояния не требуется каша из абсолютно неестественных this.setState() / Object.assign() и философствование об иммутабельности. Нужно изменить состояние — берите и меняйте.
У Vue реактивность не торчит из всех дыр, в отличие от другого известного фреймворка-библиотеки.

Vue.js послушно обвешивает всё своей реактивностью, хотя это просто никогда не нужно будет
Удар по производительности от этого минимальный. Но в целом согласен, хотелось бы иметь чистое решение, позволяющее его избежать.

score можно в computed перенести. И пора уже на ES6 переходить)

Мои навыки в javascript немного хромают и я только начал заниматься Vue.

При всём моём уважении, не подумайте, что хотел обидеть, но — так может стоит не с Vue начинать, а закрепить знания самого языка? Я не хочу писать много слов, мне кажется даже статья когда-то проскакивала, что сейчас люди учат фреймворки, а не пытаются понимать их…
Ведь если Вы будете понимать принципы «ссылочных» объектов, замыканий и жизненного цикла события в доме — всё будет куда проще… Там и поймёте почему стали использовать redux или упомянутый в комментариях vuex…
Sign up to leave a comment.

Articles