But why bother with creating a new language, and duplicating all the features your language already has, in a weird way?
If I want a list of UI items based on an array of some data, I can just do
items.map(item => 〈Item key={item.id} item={item} /〉)
, using the normal map
function that's already part of the language.
Or I can use a function, e.g. items.map(item => renderItem(item, otherData))
etc.
JSX itself is a very thin layer that translates to normal function calls.
Well you don't have to place it in a separate function, nothing stops you from inlining that part and writing
li
or whatever directly there.It's up to you how you organize your components.