bartblast

bartblast

Creator of Hologram

Navigating between LiveView and Hologram pages

This question was moved from another thread because I thought it deserved its own discussion:

Most Liked

bartblast

bartblast

Creator of Hologram

From LiveView → Hologram:

To generate the path for a specific Hologram page, you can use the Hologram.Router.Helpers functions. These are automatically imported in Hologram Component and Page modules, but you can also import them in your LiveView:

  • page_path/1 - e.g., page_path(MyPage)
  • page_path/2 - e.g., page_path(MyPage, a: 1, b: "xyz")

The second parameter in page_path/2 can be either a keyword list or a map.

These helpers are currently not documented because they’re mostly used internally, but they may be needed in a gradual migration scenario, so maybe it’s time to surface them more prominently in the docs.

From Hologram → LiveView:

Just use a regular <a> element with href pointing to the LiveView route.

If you’re worried about “zombie” link prevention (for when routes change and you forget to update them) and want to verify what you wrote is correct - which is what the ~p sigil gives you - you can use the ~p sigil on the server side, e.g., in init/3, and save it to the component/page state, then use it as a variable in the Hologram template.

Important note: In both cases, a full HTTP request will be needed to transition from one world to the other.

frankdugan3

frankdugan3

Semi-related to this, I’m curious what would be idiomatic in an app that had both LiveView pages and Hologram pages. Would ~p be appropriate to use to go from Hologram to LV? And what would be idiomatic for LV to Hologram? :thinking:

Where Next?

Popular in Questions Top

fireproofsocks
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
vac
Hi, I’m quite new in Elixir and I’m trying to format a string to a PEM format. I have the certificate value like MIIDBTCCAe2...... and I...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? Ecto.Repo — Ecto v3.14.0 has exampl...
New
itssasanka
Hi all, Trying to get some more clarity over utc_datetime and naive_datetime for Ecto: The documentation above suggests that while ...
New
ycv005
I have followed this StackOverflow post to install the specific version of Erlang. And When I am running mix ecto.setup then getting fol...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New

Other popular topics Top

danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 29603 241
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
chrismccord
As promised, the first release candidate of Phoenix 1.3.0 is out! This release focuses on code generators with improved project structure...
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
johnnyicon
Hi all, I’ve just started learning Elixir and Phoenix Framework, so please pardon my n00bness at this stage. I’m trying to use Postgres...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? Ecto.Repo — Ecto v3.14.0 has exampl...
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 records...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement