dberg

dberg

Organizing liveviews - when to use live_action, and when to have separate liveview?

I’ve seen a few posts discussing how to organize components, but what is best practice when it comes to organizing the liveviews themselves?

How much should I put in each liveview (and use @live_action) in the view to “toggle” whats shown, and when to break it out in a new liveview? Are there any example liveview projects that are more complex than say a todo-app - i.e something handling multiple nested “resources”?

For instance, it is not immediately clear to me when looking at the router (at 3:10) in https://youtu.be/SDDGOqPOHJ4?t=190 what guiding principles decide what ends up in (for instance) MemberSubscriptionLive.Index vs MemberSubscriptionLive.Edit.

Most Liked

RudManusachi

RudManusachi

I don’t know if this is idiomatic, but the way I think of it is:

When it’s the same “view”, mostly the same page, but slightly modified, for example a component rendered with different params, or “toggled” to be shown or hidden at all as you suggested, but the event handlers and are mostly the same - I would use @live_action.

However, when, suppose, “Index” and “show” actions differ too much from each other and I find that too much of their logic get mixed in the same LiveView, then it’s probably a good idea to break it into separate LiveViews.

At first we could delegate handle_events to LiveComponents (phx-target={@myself}) but, for example handle_info is still need to be in parent LiveView :man_shrugging:t2:

Where Next?

Popular in Questions Top

vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
Kurisu
For example for a current url like http://localhost:4000/cosmetic/products?_utf8=✓&query=perfume&page=2, I would like to get: ...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
myronmarston
The Elixir Typespec docs show the following syntax for keyword lists in typespecs: # ... | [key: type] # keyword lists...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
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
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
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New

Other popular topics Top

sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 41989 114
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 39467 209
New
saif
Hello everyone, Long time lurker first time poster here. I’ve recently begun working on Elixir full-time again! :raised_hands: It’s been...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
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
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New

We're in Beta

About us Mission Statement