FrontendArmoryYou might have noticed over the last two lessons how I’ve been naming Component functions in CapitalizedCase. As you may imagine, this is not an accident. So let’s do a little quiz:
Do you know why I’ve been naming component functions in CapitalizedCase?
While it goes without saying, the title of this page may give you a bit of a hint 😉
The JSX compiler distinguishes between custom components and built-in tags by their case.
lowercase vs CapitalizedCaseSo far in this course, most of the JSX elements that you’ve seen have been <lowercase>. This means that they map to built-in elements, with string types:
<div />
// becomes
React.createElement('div', {})Of course, React is all about custom components. So say that you’ve create a component called modal, and you try to use it in a <modal> element. It won’t work, because JSX will still treat the type as a string:
<modal />
// becomes
React.createElement('modal', {})JSX needs a way to distinguish between built-in tags and custom components, and that’s why components are generally named in CapitalizedCase. When JSX sees a CapitalizedCase element, it’ll pass the name through as is:
<Modal />
// becomes
React.createElement(Modal, {})This little app has a bug which is preventing it from displaying a message. You should be able to fix it by changing two characters.
Your task is to fix the bug and make it display the text.
I’ve set this editor up with a split JSX/compiled source view. Once you’ve finished the exercise, try playing around with a few different JSX tags to see what they compile to.