The array pattern is much more useful when data is more complex and has multiple properties, nesting, etc.
Still, one of the big benefits that can't be ignored is that jsx looks ugly and the array looks much cleaner.
The array pattern is much more useful when data is more complex and has multiple properties, nesting, etc.
Still, one of the big benefits that can't be ignored is that jsx looks ugly and the array looks much cleaner.
If you were to do it as the post author states, it would look like this (bad)
<ul>
<li><Link active={'/home' === window.location.pathname} to="/home">Home</Link></li>
<li><Link active={'/about' === window.location.pathname} to="/about">About</Link></li>
<li><Link active={'/contact-us' === window.location.pathname} to="/contact-us">Contact Us</Link></li>
</ul>What if you want to render your navbar differently depending on the context? Eg. on desktop it's a flexbox at the top of the page, and on mobile it's an <ul> in the hamburger menu?
Uhm maybe ...use ...context?
<Menu isHamburger={isHamburger}>
<NavLink to="/a">A</NavLink>
<NavLink to="/b">B</NavLink>
<DownloadLink file="/c.txt">Download C</NavLink>
<InfoBox>All services up-and-running</InfoBox>
<NavLink to="/signOut">Sign out</NavLink>
</Menu>
Heck, you might not even need a context to accomplish this.It is not about avoiding iterating through an array either. The objective is the readable description of the user interface. It is to improve orientation and maintainability.
Some of the worst JSX related code I've seen has involved people trying to build up arrays for data like this.
I really don't mind JSX in terms of syntax. That said, I've used ASP.Net Webforms, VB.Net (XML Literal Notation) and ActionScript (e4x XML Literal Notation) and others. Even developed a UI toolkit similar to what React became (a decade before), but only supported Netscape (e4x).
That array list might be generated somewhere else, with much more data and used for multiple purposes.