Новое поколение Frontend Development

В последние годы мы пережили рождение нескольких интерфейсных приложений, которые нацелены на решение нескольких проблем в разработке веб-приложений по-своему. Несколько пресловутых примеров:

  • AngularJS
  • ReactJS
  • Рули

Эти фреймворки оказались настолько успешными в решении большинства проблем внешнего интерфейса, что они предложили целый новый способ разработки веб-приложений во внешнем интерфейсе, который является высокоэффективным, быстрым, надежным и масштабируемым.

Если вы какое-то время были веб-разработчиком, вы, должно быть, уже знакомы с модификацией DOM как с помощью необработанного Javascript, так и с помощью JQuery.

Хотя этот классический подход к модификации DOM с помощью javascript или JQuery довольно прост, он требует больших затрат времени на разработку и большую часть времени с неожиданными ошибками и поведением из-за необходимости контролировать все модификации DOM и все возможные часто возникающие ошибки, он также генерирует код, который большую часть времени не масштабируется.

Такие фреймворки, как классический AngularJS или ReactJS, установили новый способ взаимодействия с динамическими данными и привязки их к DOM без необходимости использования огромных методов и скриптов, чтобы, например, добавить элемент, полученный с сервера, в неупорядоченный список.

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

Связывание данных

Одна из таких успешных концепций - привязка данных. Привязка данных родилась из-за необходимости иметь управляемую модель DOM, чтобы избежать необходимости вручную изменять ее каждый раз, когда наши данные меняются. Это очень мощная функция VueJS, которая позволяет нам изменять наши данные и видеть изменения, отраженные в dom, без их модификации.

Например, давайте создадим еще одно очень простое приложение:

Это отобразит следующие данные во время выполнения:

Используя экземпляр Vue, мы также можем изменить эти данные извне и сразу увидеть изменения, отраженные в DOM:

Это отобразит следующие данные во время выполнения:

Директивы v-if v-else

Хорошо, мы уже знакомы с привязкой данных, очень мощной и понятной функцией, которая позволяет нам видеть, как наши данные отражаются в модели DOM.

На VueJS у нас есть условная директива рендеринга, которая позволяет нам рендерить кусок нашей DOM, если условие выполнено, давайте рассмотрим следующий пример

Если мы увеличим возраст Джона до 22, блок v-if будет выполнен и обработан.

Примечание. Условный рендеринг не работает путем скрытия или отображения частей DOM, он работает путем их удаления или добавления обратно в DOM, для использования условного отображения используйте директиву v-show

Директива v-for

Создавать коллекции и перечисленные элементы во Vue очень просто, директива v-for позволяет нам привязать список к dom.

Мы можем добавлять или удалять элементы в массив FavoriteDrinks динамически, используя функции массива Javascript:

Экземпляр vue: методы

Экземпляр vue поддерживает настраиваемые методы (функции), которые позволяют нам выполнять настраиваемые операции с данными. Пример:

Вы также можете определить параметры своих методов:

incrementAge: function (amount) {
  this.age = this.age + amount
}
// On the console:
testApp.incrementAge(5)

Директива v-on

Директива v-on позволяет нам привязать метод нашего экземпляра vue к событию HTML.

Примечание. v-on можно переписать с помощью сокращения @

Пример:

Экземпляр vue: вычисляемые свойства

Вычисленные свойства позволяют нам привязать нашу DOM к вычисляемым данным, мы могли бы добиться того же, используя методы, но разница здесь в том, что экземпляр VUE кэширует наши вычисленные свойства для достижения наилучшей возможной производительности.

В следующем примере мы собираемся привязать наши данные ко всем напиткам, которые начинаются с B:

Привязка данных: двусторонняя привязка данных и директива v-model

В VueJS выполнять двустороннюю привязку данных со значениями формы очень просто, эта функция позволяет нам привязать переменную к входу, позволяя привязать переменную к значению формы и к данным одновременно.

Пример:

Это обновит наши привязки к имени сразу после ввода текста в текстовое поле.

Для числовых текстовых полей: используйте v-model.number, чтобы связать значение с числом, иначе вы получите строковую привязку на стороне ввода.

Пример Todos:



Пример Todos с Vuetify