From 608c255fa78998eef769bf6f44b7ef9d98832384 Mon Sep 17 00:00:00 2001 From: Nikita Prokopov Date: Tue, 30 Apr 2024 19:14:16 +0200 Subject: [PATCH] Humble Chronicles: Shape of the component --- site/blog/humble-defcomp/index.md | 155 ++++++++++++++++++++ site/blog/humble-defcomp/screenshot@2x.webp | Bin 0 -> 63140 bytes 2 files changed, 155 insertions(+) create mode 100644 site/blog/humble-defcomp/index.md create mode 100644 site/blog/humble-defcomp/screenshot@2x.webp diff --git a/site/blog/humble-defcomp/index.md b/site/blog/humble-defcomp/index.md new file mode 100644 index 0000000..c2cac84 --- /dev/null +++ b/site/blog/humble-defcomp/index.md @@ -0,0 +1,155 @@ +--- +title: "Humble Chronicles: Shape of the component" +summary: "Looking for an ergonomic way to define components" +published: 2024-04-30 +--- + +Last time I ran a huge experiment trying to figure out how components should work in Humble UI. Since then, I’ve been trying to bring it to the main. + +This was trickier than I anticipated — even with a working prototype, there are still lots of decisions to make, and each one takes time. + +I discussed some ideas in [Humble Chronicles: Managing State with VDOM](https://tonsky.me/blog/humble-vdom/), but this is what we ultimately arrived at. + +The simplest component: + +``` +(ui/defcomp my-comp [] + [ui/label "Hello, world!"]) +``` + +Note the use of square brackets `[]`, it’s important. We are not creating nodes directly, we return a “description” of UI that will later be analyzed and instantiated for us by Humble UI. + +Later if you want to use your component, you do the same: + +``` +(ui/defcomp other-comp [] + [my-comp]) +``` + +You can pass arguments to it: + +``` +(ui/defcomp my-comp [text text2 text3] + [ui/label (str text ", " text2 ", " text3)]) +``` + +To use local state, return a function. In that case, the body itself will become the “setup” phase, and the returned function will become the “render” phase. Setup is called once, render is called many times: + +``` +(ui/defcomp my-comp [text] + ;; setup + (let [*cnt (signal/signal 0)] + (fn [text] + ;; render + [ui/label (str text ": " @*cnt)]))) +``` + +As you can see, we have our own signals implementation. They seem to fit very well with the rest of the VDOM paradigm. + +Finally, the fullest form is a map with the `:render` key: + +``` +(ui/defcomp my-comp [text] + (let [timer (timer/schedule #(println 123) 1000)] + {:after-unmount + (fn [] + (timer/cancel timer)) + :render + (fn [text] + [ui/label text])})) +``` + +Again, the body of the component itself becomes “setup”, and `:render` becomes “render”. As you can see, the map form is useful for specifying lifecycle callbacks. + +# Code reuse + +React has a notion of “hooks”: small reusable bits of code that have access to all the same state and lifecycle machinery that components have. + +For example, a timer always needs to be cancelled in unmount, but I don’t want to write `after-unmount` every time I want to use a timer. I want to use a timer and have its lifecycle to be registered automatically. + +Our alternative is `with` macro: + +``` +(defn use-timer [] + (let [*state (signal/signal 0) + timer (timer/schedule #(println @*state) 1000) + cancel (fn [] + (timer/cancel timer))] + {:value *state + :after-unmount cancel})) + +(ui/defcomp ui [] + (ui/with [*timer (use-timer)] + (fn [] + [ui/label "Timer: " @*timer]))) +``` + +Under the hood, `with` just takes a return map of its body and adds stuff it needs to it. Simple, no magic, no special “hooks rules”. + +Same as with hooks, `with` can be used inside `with` recursively. It just works. + +Thanks [Kevin Lynagh](https://kevinlynagh.com/) for the idea. + +# Shared state + +One of the goals of Humble UI was to make component reuse trivial. Web, for example, has hundreds of properties to customize a button, and still, it’s often not enough. + +I lack the resources to make hundreds of properties, so I wanted to take another route: make components out of simple reusable parts, and let end users recombine them. + +So a button becomes `clickable` (behavior) and `button-look` (visual). Want a custom button? Implement your own look, and use the same behavior. Want to reuse the look in another component (e.g. a toggle button?). Write your own behavior, and reuse the visuals. + +The look itself consists of simple parts that can be reused and recombined: + +``` +(ui/defcomp button-look [child] + [clip-rrect {:radii [4]} + [rect {:paint button-bg)} + [padding {:padding 10} + [center + [label child]]]]]) +``` + +And then the button becomes: + +``` +(ui/defcomp button [opts child] + [ui/clickable opts + [ui/button-look child]]) +``` + +(this and a previous one are simplified for clarity) + +Now, the problem. The button is, of course, interactive. It reacts to being hovered, pressed, etc. But the state that represents it lives in `clickable` (the behavior). How to share? + +The first idea was to use signals. Like this: + +``` +(ui/defcomp button [opts child] + (let [*state (signal/signal nil)] + (fn [opts child] + [ui/clickable {:*state *state} + [ui/button-look @*state child]]))) +``` + +Which does work, of course, but a little too verbose. It also forces you to define state outside, while logically `clickable` should be responsible for it. + +So the current solution is this: + +``` +(ui/defcomp button [opts child] + [ui/clickable opts + (fn [state] + [ui/button-look state child])]) +``` + +Which is a bit tighter and doesn’t expose the state unnecessarily. The look component is also straightforward: it accepts the state as an argument, without any magic, so it can be reused anywhere. + +# Where to try + +Current development happens [in the “vdom” branch](https://github.com/HumbleUI/HumbleUI/tree/vdom). Components migrate slowly, but steadily, to the new model. + +Current screenshot for history: + +screenshot@2x.webp + +Soon we will all live in a Virtual DOM world, I hope. diff --git a/site/blog/humble-defcomp/screenshot@2x.webp b/site/blog/humble-defcomp/screenshot@2x.webp new file mode 100644 index 0000000000000000000000000000000000000000..1ed7e7be212493312acf91944bf3f34833cf31d2 GIT binary patch literal 63140 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