FAQ

FAQ

@vik_kod

Частые вопросы и ответы по vue.js


1) Что лучше учить, react, angular или vue.js?

Выбирать в зависимости от ситуации, знаний и самого проекта. Так же можно ознакомиться с этой статьей, которая в подробностях все разъясняет.

Но советуем конечно vue.js :)


2) Как работает .sync?

документация

В некоторых случаях нам может понадобиться “двухсторонняя привязка” для входных данных — фактически, в Vue 1.x это было представлено модификатором .sync. Когда дочерний компонент изменяет параметр входных данных (prop) с модификатором .sync, изменение значения будет отражено в родительском компоненте. Это удобно, однако в долгосрочной перспективе может привести к усложнению поддержки, поскольку это нарушает предположение об одностороннем потоке данных: код, который мутирует дочерние входные данные, неявно затрагивает родительское состояние.

Вот почему мы удалили модификатор .sync, когда была выпущена версия 2.0. Тем не менее, мы обнаружили, что действительно есть случаи когда это может быть полезно, особенно при реализации переиспользуемых компонентов. Что нам требовалось изменить, это сделать код в потомке, который влияет на родительское состояние более последовательным и явным.

В версии 2.3.0+ мы снова ввели модификатор .sync для входных данных, но на этот раз это просто синтаксический сахар, который автоматически преобразуется в дополнительный обработчик v-on:

Следующее

<comp :foo.sync="bar"></comp>

будет преобразовано в:

<comp :foo="bar" @update:foo="val => bar = val"></comp>

Чтобы дочерний компонент обновлял значение foo, он должен явно генерировать событие, вместо изменения параметра входных данных:

this.$emit('update:foo', newValue)