clojurescript 2025-09-13

Does anyone have some list of popular React integration libraries? I know of Reagent, reframe and fulcro. Is reagent still popular and up to date? anyone using nonreact js frameworks like vue or something else?

although reagent isn't the most hip library and some other alternatives like uix and helix that adopted more modern React features, I think reagent is still rocking and conceptually the easiest for people who know Clojure

replicant also comes to mind which avoids React completely

I am kinda looking for something that would be close to how a modern typescript react is written in case I need to expand to doing Typescript frontends

probably uix or helix would suit your needs best as they are designed for the modern features that you would be using in typescript as well

in squint you don't need any library except react, since you can write JSX directly in squint

Cljdoc used https://preactjs.com/, so I stuck with that. In TypeScript, cljdoc tended to use https://preactjs.com/guide/v10/components#class-components, but I found switching over to https://preactjs.com/guide/v10/components#functional-components a much better fit for squint (and probably cljs in general).

Using Preact directly worked fine for cljdoc.

But note that cljdoc's front end is pretty minimal. It is mostly a server-side app.

ok - in case you need class components, you can use this in squint too: https://github.com/squint-cljs/squint/blob/main/doc/defclass.md

πŸ‘ 1

Yeah, I noticed defclass and tried it, but found I much preferred functional components.

πŸ‘ 1

By functional components do you mean hooks?

Oh it’s a special preact thing

Yeah, see links I provided above

does rebel-readline also work with a node (terminal) REPL? I normally start one with:

clj -Sdeps '{:deps {org.clojure/clojurescript {:mvn/version "RELEASE"}}}' -M -m cljs.main -re node
but the readme of rebel readline only speaks about nashorn (which is no longer supported by the JVM?) cc @bhauman

rlwrap is very broken for me at the moment

Yeah, I notice that rlwrap is behaving crazily these days!