News for hackers. Stuff that matters.
Re:RawJS is a better way to call document.createElement() by spoiler on Wednesday January 03, 2024 @12:43PM (#38857027)
I think they reference two different things

The first statement means you don't need a compiler (or larger build system) to use the library. With React/Vue/etc you need at least something like Babel (but usually also needs a bundler); which has become common lately in the web dev ecosystem. This is all just vanilla JS (or TS) you write; no need to transform JSX or some else.

I assume the second statement means there's not a lot of added type checking time burden for using the library, if you do decide to use TypeScript in your project (but don't have to). Not sure what this means specifically, but I might be something along the lines of it relying on simpler types or eager `any`s in internal types to short-circuit resolving/checking types.

Re:RawJS is a better way to call document.createElement() by chuckadams on Wednesday January 03, 2024 @01:00PM (#38857286)
> With React/Vue/etc you need at least something like Babel

VueJS works with just a CDN link and a script tag. Nothing serious actually uses this approach, and they stopped using it for examples, but it still works.

Re:RawJS is a better way to call document.createElement() by throwitaway1123 on Wednesday January 03, 2024 @05:46PM (#38860886)
> With React/Vue/etc you need at least something like Babel (but usually also needs a bundler); which has become common lately in the web dev ecosystem. This is all just vanilla JS (or TS) you write; no need to transform JSX or some else.

The TypeScript compiler has native support for JSX. You don't need Babel, you just have to add the '"jsx": "react"' line to your tsconfig file to enable it.

Re:RawJS is a better way to call document.createElement() by spoiler on Thursday January 04, 2024 @09:17AM (#38867247)
The TS compiler might produce something, but that's not usually enough in the context of a larger React application (eg, they often import non-ts files).
Re:RawJS is a better way to call document.createElement() by throwitaway1123 on Thursday January 04, 2024 @05:15PM (#38873046)
> The TS compiler might produce something

It'll produce calls to React.createElement provided with: the tag name, props, and children. That's all JSX is.

> but that's not usually enough in the context of a larger React application (eg, they often import non-ts files)

React and JSX don't require you to import non-ts files. If RawJS's nascent ecosystem picks up momentum, people might start importing non-ts files in RawJS projects (e.g. css modules). My point is that there's nothing special about the RawJS api that allows you to skip a build step, and conversely, there's nothing about React that requires Babel (assuming you're already using TypeScript).