Support function components via component/3 #1428
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is the first of a set of PRs intended to improve support for components in Phoenix.
This first PR introduces a
component/3
macro that should be used to define stateless components based on pure functions. The goal is to be able to create stateless components that can:The
component/3
macro along with the changes in phoenixframework/phoenix_html#331 are requirements for the next PR which will introduce an HTML tokenizer and engine that will be able to parse an extended version ofEEX
calledHEEX
. This new format will allow injecting components in an HTML-like style (similar to React, Vue, Surface, ...). In addition, it will statically validate the structure of the template, raising errors on common mistakes like unclosed/unmatched tags.The first version of the HTML tokenizer and engine is already done and will be submitted for review as soon as we have this one merged.
Cheers.