Introdução
Anatomia de uma LiveView
Tempo de leitura: 3 minutos
#Entendendo as partes
Vamos retomar o código do passo anterior:
Mix.install([
{:liveview_playground, "~> 0.1.1"}
])
defmodule PageLive do
use LiveviewPlaygroundWeb, :live_view
def render(assigns) do
~H"""
Hello World
"""
end
end
LiveviewPlayground.start()
#Entendendo o Mix.install
Mix é a ferramente que gerencia e compila projetos em Elixir. Para scripts em Elixir a função Mix.Install/2
serve para instalar dependências sem você precisar fazer um projeto Mix inteiro. Na prática você dificilmente vai hospedar projetos LiveView usando scripts .exs
(apesar de ser possível e válido dependendo do seu projeto) porém para estudos isso é o suficiente.
Ei, o que foi esse /2
que você disse no Mix.install/2
?
Enum.count/1
também existe a Enum.count/2
que recebe dois argumentos e são funções diferentes. Vale mencionar que esse número de argumentos representa a aridade da função. Uma função que aceita um argumento é uma função unária Uma função que aceita dois argumentos é uma função binária Uma função que aceita três argumentos é uma função ternária.
#O módulo PageLive
Por conveniência o LiveviewPlayground
sempre procura um defmodule PageLive do
para usar por padrão. Se você esquecer de escrever ele irá ver um erro no sistema. Veremos mais tarde que esse nome não importa tanto e pode ser chamado de qualquer coisa quando estudarmos sobre Router
do Phoenix.
A primeira linha do módulo use LiveviewPlaygroundWeb, :live_view
é importante de ser entendida e você verá em todas as aplicações LiveView. O macro use
funciona por trás dos panos como uma forma de executar um código em tempo de compilação. Pense nisso como "na hora que este código compilar, coisas serão adicionadas". Quando estudarmos o módulo LiveviewPlaygroundWeb
tudo ficará mais claro porém você só precisa saber agora que quase sempre que você for fazer uma LiveView o módulo dela terá algo como use NomeDoProjetoWeb, :live_view
.
def render(assigns) do
~H"""
Hello World
"""
end
Por fim, o mínimo para você ter uma LiveView é, pasme, a View. Isto é, uma função que explica qual código HTML será mostrado para seu usuário. Toda LiveView (sem exceção) tem uma função de renderização que recebe exclusivamente um argumento chamado assigns
(falaremos sobre eles logo mais). Tudo que sua render function
precisa fazer é retornar um HTML válido usando a sigil_H/2.
sigil_H/2
?
sigils
são funções binárias (recebem 2 argumentos) que servem pra transformar texto em outra coisa. A sigil_H/2
transforma HTML válido em uma estrutura de dados otimizada para enviar HTML para seu usuário. Precisamos saber como ela funciona? Não! Mas iremos ver no futuro apenas a nível de curiosidade nos tópicos avançados.
#Recapitulando!
- Mix é a ferramenta de compilação de projetos Elixir.
-
Mix.install/2
é útil para projetos simples e geralmente não é usado para hospedar LiveView em produção. -
Todas as LiveViews possuem uma
render function
e sempre recebem um argumento chamadoassigns
. -
use SeuProjetoWeb, :live_view
adiciona coisas em tempo de compilação para fazer sua LiveView funcionar direitinho.
Feedback
Você tem algum feedback sobre esta página? Conte-nos!