先の日曜日、2021-09-26 に Phoenix 1.6 がリリースされました!
…が、なぜかブログ記事の日付は August 26th, 2021 。
今回も目玉はいくつかあるのですが、その中でも気になる存在が HEEx 。
新しく追加されたシジル ~H
を使ってコンポーネントを定義することができます。
lib/my_app_web/views/page_view.ex
defmodule MyAppWeb.PageView do use MyAppWeb, :view def greeting(assigns) do ~H""" Hello <%= @target %> """ end end
テンプレートファイルも、拡張子 .heex
が標準になっていて、上で定義したコンポーネントを利用できるようになっています。
lib/my_app_web/templates/page/index.html.heex
<.greeting target="world" />
またパラメータも <%= %>
に代わる構文として { }
で記述することができるようになりました。
lib/my_app_web/controllers/page_controller.ex
defmodule MyAppWeb.PageController do use MyAppWeb, :controller def index(conn, _params) do conn |> assign(:name, "Phoenix") |> render("index.html") end end
<.greeting target={@name} />
…ただ、個人的には。 テンプレートがコードに混ざる構文はいまひとつ気になるところ。
このところ仕事が佳境で時間が取れていないのですが、追っていろいろと試してみようと思います。