I’m at the point where I’m wondering if choosing Svelte for NodeKit is a design error in terms of cultural fit and goals. (They want to be the “serverless” framework for Big Tech. I feel like I’m hitting my head against a wall whenever I want to adapt anything for small web use because it’s all geared towards corporate web use.)

Anyone here played with htmx and hyperscript? Any experience with the community?

htmx.org/
hyperscript.org

Follow

Question to JavaScript folks who have experience with Node.js… how does the following (theoretical) code listing for a server-side route that renders an index page with a count that’s persisted in memory on the server and updated any time someone loads the page read to you?

· · Web · 3 · 1 · 1

Right, thanks to your feedback, this is what the “hello, world” would look like in htmx versus the equiavelent of what I have now in Svelte.

But there’s one big drawback to htmx… no ES modules and thus no components. That’s a biggie.

🤔

… Unless, of course, I implemented it server-side… right, lots to think about and play with :)

Re: javascript 

@aral my first intuition would be that this always displays 1, because let count = 1 is on the top of the file, and it looks like it always gets executed when the page is rendered :blobfoxglare:

I’d expect a clearer separation between the initialization and the rendering, like

let count = 1; export default function render() { return <div>{count++}</div>; }

or maybe even (goodness forbid!)

let count = useState(1); return <div>{count++}</div>;

(btw, won’t the code display 1 times even on the first request, because the condition count > 1 gets evaluated after the post-increment? granted, I’m not familiar with the order of side-effects in jsx interpolation expressions)

Re: javascript 

@kristof Thanks, Kristóf. Interestingly, that’s exactly how I have it in NodeKit right now :)

i have very little experience with jsx, this might be totally wrong 

@aral i would probably do the count++ in a dedicated statement before returning the template and initialize the variable with 0. depending on how exactly it evaluates templates, you'll probably end up with count not being the same value in the two placeholders, which in turn might give you the plural form even if it displays 1.

i have very little experience with jsx, this might be totally wrong 

@fef Thanks, yeah, I messed up that quick example as the two are separate in the Svelte version (the data is calculated on the server and injected into the client where the display logic is). Now fixed in the follow-up :)

Sign in to participate in the conversation
Aral’s Mastodon

This is my personal Mastodon.