Веб-фреймворк Phoenix 1.6.0

good-penguin.png

Phoenix — веб-фреймворк на языке программирования Elixir, призванный обеспечить высокую производительность веб-приложений.

Основой фреймворка является движок LiveView, который обеспечивает возможность обновления DOM на стороне сервера с помощью долгоиграющего WebSocket-соединения, что позволяет писать интерактивные веб-приложения без использования JavaScript.

Нововведения:

  • Команда phx.gen.auth, позволяющая добавить готовые функции аутентификации в приложение.
  • В состав Phoenix включена библиотека для работы с электронной почтой Swoosh.
  • Вместе с обновлённой LiveView 0.16 Phoenix получил новый движок для рендера HTML-шаблонов — HEEx. В сравнении со старым движком (EEx), HEEx предоставляет:
    • Поддержку HTML-атрибутов. Т.к. HEEx должен разбирать и проверять структуру HTML, конструкции <%= ... %> и <%= ... %> нужно использовать только для интерполяции содержимого тегов и не могут применяться в самой разметке. Вместо:
      ...
      , следует писать:
      ...
      .
    • Проверку структуры шаблона на этапе компиляции.
    • Минимизацию количества передаваемых данных.
    • HTML-подобную нотацию, для вставки функциональных компонентов. Пример:


# где сам компонент имеет следующий вид:

defmodule MyApp.Weather do
  use Phoenix.Component

  def city(assigns) do
    ~H"""
    The chosen city is: <%= @city %>.
    """
  end

  def country(assigns) do
    ~H"""
    The chosen country is: <%= @country %>.
    """
  end
end
  • Появился механизм привязки к этапам жизненного цикла LiveView (lifecycle hooks).

  • Новый макрос live_session, позволяющий осуществлять навигацию через существующие WebSocket-соединения, что помогает избежать лишних HTTP-запросов и значительно ускоряет навигацию.

  • Сборка JS и CSS теперь осуществляется без Node и Webpack, которые годами создавали проблемы в части поддержки проекта.

>>> Подробности

©  Linux.org.ru