Views in Phoenix
In Phoenix, views act as helper modules, which are called from the controllers toward the end of a request and are responsible for rendering HTML using a template. In Phoenix, the views and templates have to comply with a strong naming convention. For example, PageController
calls a PageView
module to render templates present in the web/templates/page/
folder by default.
By default, Phoenix generates LayoutView
along with the web/templates/layout
folder, containing a root.html.eex
file (root.html.heex
in newer versions). This template is rendered after every request, and within this template, other individual templates are rendered using other views. Let’s take a look at an example of a Phoenix view and a template, for the Page
resource.
Let’s first look at the controller again:
defmodule ExampleWeb.PageController do use ExampleWeb, :controller def index(conn, params) do case Example.Page.load_data...