使用content_tag与编写纯HTML

时间:2019-05-04 09:30:05

标签: elixir phoenix

我正在学习Phoenix(和Elixir),在阅读了一些文档之后,我注意到在模板中呈现HTML的方式之间有些冲突。而且我不知道哪种方法更好。

以凤凰docs中的代码示例为例:

<%= for key <- connection_keys(@conn) do %>
    <p><%= key %></p>
<% end %>

上面的代码在新段落中打印每个连接键。为什么不这样做呢? :

<%= for key <- connection_keys(@conn) do
        content_tag :p, key
    end %>

使用一种方法是否有不利之处?我应该主要使用Elixir还是HTML编写模板,或同时使用两者(行业标准是什么?)编写模板?我还发现第二个代码片段更具可读性。

我已经意识到,使用content_tag可以用Elixir代码编写几乎整个页面,而无需编写任何HTML。

1 个答案:

答案 0 :(得分:0)

Phoenix是OSS。这是Phoenix.HTML.Tag.content_tag/2的实现:

https://github.com/phoenixframework/phoenix_html/blob/v2.13.2/lib/phoenix_html/tag.ex#L87

html_escape中的<%= key %>基本相同。

也就是说,随便你做什么;尽管在 Phoenix 中使用 Phoenix 助手可能很有意义,但是没有明显的区别。