This is a documentation change proposal.
After discussing the issue with @zaceno, I'd like to rename custom tags to stateless components or components for short.
They actually are stateless/functional components.. right?
At least by the common reference:
They kind of also depict Custom Elements (but with _much_ nicer syntax)
Perhaps what is most important here is that there is some clear hierarchy. If these sateless components are the leaf nodes, let's say we call them components, then what are we going to call the stateful components (if they materialise) and are stateless always children of stateful? Then maybe these are Elements and containers of elements are called Components.
I'm asking myself _why_ are we naming this thing, what is it meant to mean in the grand scheme of things.
They actually are stateless/functional components.. right?
Yes, so basically we're doing the right thing now. 馃槄
I'm asking myself why are we naming this thing, what is it meant to mean in the grand scheme of things.
I feel we need to tidy things up before 1.0. Terminology goes a long way and @zaceno's (can you repost it here for posterity?) argument against custom tags was sound too.
Also, if #269 lands then it will be possible to create a mixin that looks a lot like a stateful component on the surface, at which point the name custom tag will coexist with split mixin and it's going to drive newcomers insane. 馃槤
We can always say that creating components is like creating your own custom tags, but we should call them components .
EDIT: Emoji.
So long as there is sufficient emphasis on the fact that these are stateless or functional or stateless functional components then I'd say so. At least, it would be inline with the common definition of the _thing_.
In the react guide it says quite clearly 馃槀
We call such components "functional" because they are _literally_ JavaScript functions.
SGTM
+1 to calling them functions or functional components.
As per @jbucaran's request:
My argument against the use of "custom tags" for functions of the type (props, children) -> vnode, is that they are only similar to actual html-tags in the context of JXS, where such a function named Counter can be callled and embedded in a vtree like this: <div><Counter /></div>. If you're using hyperx, it looks like this <div>${Counter()}</div>.
Most helpful comment
+1 to calling them functions or functional components.