14 hours ago
- Web standards like HTML tags allow developers to use conceptual names (e.g., `<p>`, `<i>`) without knowing the underlying browser implementation details.
- Naming concepts enables abstraction, letting developers build complex systems by layering behaviors, such as defining custom components like `Greeting`.
- Custom components (e.g., `<Greeting>`) must be translated into browser-understood tags via functions that substitute them with their definitions (e.g., an `ExpandableGreeting` function outputs `<details>` with inner JSX).
- The translation process recursively resolves nested custom components until only built-in tags remain, akin to a chain reaction dissolving user-defined concepts into browser-ready code.
- Implementing this translation involves handling both custom functions and built-in tags, ensuring children of built-in tags are also processed recursively.
- The translation can occur on either the server or client side, but must complete before the browser renders the final output.