Steffen Deusch
banner
steffend.me
Steffen Deusch
@steffend.me
Software Developer (mostly Elixir).

Mainly here to read.

Fediverse https://chaos.social/@sd
One way to improve that right now is to use LiveComponents. Basically, instead of directly rendering the content of the tag given to `:for`, you render a LiveComponent instead, which does perform change-tracking on its own assigns. This is cumbersome though, as you need to define a separate module.
June 7, 2025 at 4:53 PM
One common pitfall when using lists in #LiveView is that they are not change-tracked. We might have something to improve that situation in an upcoming update! #MyElixirStatus #Phoenix #ElixirLang
June 7, 2025 at 4:53 PM
In the past you'd need to either add a hook or a global `onBeforeElUpdated` dom option when defining your LiveSocket. Both would be really cumbersome for a library. The hook part is easier now with ColocatedHooks, but with `JS.ignore_attributes` it's even easier!
May 30, 2025 at 10:40 AM
I recently showed one example of a macro component that renders markdown at compile time: bsky.app/profile/stef...

The code to do syntax highlighting is not much more complex.
May 30, 2025 at 10:40 AM
Macro components are a new, special kind of component in HEEx that works fully at compile time. It receives an HTML-AST representation of the node it is defined on and can transform it into something else. And that something else can also be nothing, removing a script and write it to a file.
May 30, 2025 at 10:40 AM
1. Type definitions for public JavaScript interfaces.
I know that many people enjoy that you don't need to write much JavaScript when developing a LiveView application, but you cannot always avoid it entirely. We now have official type declarations shipped with the LiveView JS!
May 30, 2025 at 10:40 AM
While working on Colocated Hooks in LiveView, we also found some other cool things you can do, such as rendering markdown at compile time 👀 #MyElixirStatus #ElixirLang #PhoenixLiveView
May 23, 2025 at 8:04 AM