Navegação
Parâmetros genéricos com query string
Read time: 2 minutes
Este guia é uma continuação direta do guia anterior
git clone https://github.com/adopt-liveview/v2-myapp.git --branch your-second-liveview-done.
A variável params passada ao mount/3 não se limita a parâmetros no caminho do URL; ela também pode conter dados vindos da query string. Vamos criar uma LiveView simples onde, se o usuário passar a query string ?admin_mode=secret123, ele pode ver algo exclusivo para admins. Atualize sua PageLive para isso:
defmodule MyappWeb.PageLive do
use MyappWeb, :live_view
def mount(params, _session, socket) do
admin? = params["admin_mode"] == "secret123"
socket = assign(socket, :admin?, admin?)
{:ok, socket}
end
def render(assigns) do
~H"""
<h1>Welcome to my Website!</h1>
<.link :if={@admin?} navigate={~p"/admin"}>Go to admin panel</.link>
"""
end
end
Esta LiveView reutilizou diversas coisas abordadas em aulas anteriores. O principal aqui é o fato de que recebemos o argumento params sem especificar nenhum param em específico. Se o usuário passar uma query string vazia, nosso sistema simplesmente deixará o assign admin? como falso. Abra http://localhost:4000/?admin_mode=secret123 para ver a mensagem do painel de administração.
#Resumindo!
-
A variável
paramsrecebe qualquer coisa na query string em formato chave-valor como?x=10&y=12. -
Como a variável
paramsé um mapa, podemos usar a sintaxeparams["chave"]para acessar valores opcionais.
Feedback
Got any feedback about this page? Let us know!