Summary
It is possible to share state across multiple LiveViews via a common socket. This is done by having a GenServer holding a map with all current browser sessions and the data attached to it, and using Phoenix Presence to clean up state when the last browser window or tab is closed.
1
Additionally, each LiveView has its own process and the process gets killed when navigating away from it, so the only way to keep the same socket alive during route transitions to other LiveViews is to persist it in another process.
2
Phoenix.LiveView is a declarative programming model that provides rich, real-time user experiences with server-rendered HTML.
3
According to
See more results on Neeva
Summaries from the best pages on the web
Summary
And the way I share state betweeen browers, is by having a GenServer holding a map with all current browser sessions and the data attached to it.
And to keep this to grow indefinitely, I am also going to use Phoenix Presence to clean up state when the last browser window or tab is closed.
Share LiveView state between tabs - Fullstack Phoenix
fullstackphoenix.com
Summary
This thread discusses how to share state across multiple LiveViews via a common socket. It explains that each LiveView has its own process and the process gets killed when navigating away from it, so the only way to keep the same socket alive during route transitions to other LiveViews is to persist it in another process. It also explains that the socket endpoint is defined in AppWeb.Endpoint and each LiveView process is a channel and the client subscribes to the topic.
Multiple LiveView. Share state across them via common socket
elixirforum.com
Summary
Phoenix.LiveView is a declarative programming model that provides rich, real-time user experiences with server-rendered HTML. It is first rendered statically as part of regular HTTP requests, and then upgrades to a stateful view on client connect. It allows developers to write LiveView templates as any other server-rendered HTML, and it uses more memory on the server compared to stateless requests.
Phoenix.LiveView — Phoenix LiveView v0.18.17 - HexDocs
hexdocs.pm
Phoenix .LiveComponent behaviour LiveComponents are a mechanism to compartmentalize state , markup, and events in LiveView. LiveComponents are defined by using Phoenix .LiveComponent and are used by calling Phoenix .Component. live _component/1 in a parent LiveView.…
Phoenix.LiveComponent — Phoenix LiveView v0.18.17 - HexDocs
hexdocs.pm
In this tutorial, you’ll share state across multiple components using React context. React context is an interface for sharing information with other components without explicitly passing the data as props.…
How To Share State Across React Components with Context
digitalocean.com
To coordinate these two panels, you need to “lift their state up” to a parent component in three steps: Remove state from the child components. Pass hardcoded data from the…
Sharing State Between Components • React
reactjs.org
Introduce Phoenix .Router. live _session/3 for optimized live redirects Introduce on_mount and attach_hook hooks which provide a mechanism to tap into key stages of the LiveView lifecycle Add upload methods to client-side hooks
phoenix_live_view/CHANGELOG.md at main - GitHub
github.com