DEV Community

Milos Protic
Milos Protic

Posted on

Is div still a div?

Is it just me, or does anyone else dislike the fact that we are close to the point where div is not a div anymore? What are your thoughts about where web development is heading?

Top comments (9)

Collapse
 
lucashogie profile image
Lucas H.

I don't understand the question. Some context?

Collapse
 
proticm profile image
Milos Protic

The context would be JSX, and it's popularity. Developers write something that looks like HTML, but it's not HTML.

Collapse
 
gnatson profile image
πŸ¦„ Sebastiano

In case we're talking about JSX

For me it's absolutely fascinating how things evolve. What you wrote about is an example of how something animate arises from inanimate things. Earlier, some "dead" elements such as the aforementioned div were available to developers. These days the community has decided that we use reactive components to build the application.

Just in case someone has a boring Monday πŸ˜…

// πŸ˜‰ Place me different places in your app and I promise to work
// ❀ I'm fascinating inside
// πŸ”¨It's super easy to move me around your application structure
// ...
<MenuBar/>

// πŸ‘‹ Click one of the buttons that I `render()` to make me fly away from you
<Dragon/>
<Dragon/>

// There are different species of course 😊
// πŸ”₯ My buttons are red
<FireDragon/>

// πŸ’ͺ Every my button is disabled by default and you cannot change it...
<DarkDragon/>

// πŸ€— You can put elements in me and I will make them more wonderful
// πŸ’Ύ I save myself (my state) in `localStorage` and in the clouds (aws) when you accidentally close the application
<AwesomeNotes>
    <h1>My awesome adventure</h1>
    <div>Lorem ipsum</div>
    <textarea>Lorem ipsum</textarea>
    <p>Note created {timestamp} in {location}</p>
</AwesomeNotes>

<MagicPanel rules={[dragonsAllowed: false]}>
    <RichMenuItem/>
    <RichMenuItem/>
    <RichMenuItem/>
    {/* Ooppsss... πŸ˜‚ */}
    <DarkDragon/>
</MagicPanel>

I know it is a bit abstract answer but it was supposed to be 😸.

Collapse
 
proticm profile image
Milos Protic

Yes, we are talking about JSX :)

Do note that div is just an example element, the title is an abstract assumption that we no longer write normal good old HTML.

I mean, since React team introduced the JSX (as far as I know), our components do contain the word div but contextually it is not. It gets compiled to JavaScript that creates the div. So basically we have an extra step comparing to the old ways of doing things. I cannot decide whether this (everything is JavaScript) is good or bad, considering that it's really powerful and useful for templating.

Collapse
 
aziziyazit profile image
Azizi Yazit

We should use semantic HTML over div like Article, Nav, Header, Section and many more. Its super hard to debug JSX when everything is just a div.

Collapse
 
anpos231 profile image
anpos231

Div is still div :P
If you misuse div then you are not doing your work properly.

Collapse
 
mikeaustin profile image
Mike Austin

divs and spans are out–they're too low level. I prefer React Native for Web, which feels more like developing for iOS or Android, the JSX feeling more like programmable XML. Sure, there are divs and spans (and h*), underneath, but those are the implementation details.

Collapse
 
wowrodney profile image
wowrodney

I agree. I have not done much with react, so can't way in there, but custom elements have been around for a while. As long as we as designers and devs still build contextual and well crafted code all should be fine. :)

Collapse
 
abhinav1217 profile image
Abhinav Kulshreshtha

div is still a div.
When you need an article, use article. When you need a section, use section. But when you just need a block container to arrange common stuff, for UI purposes, when a grouping elements does not need to convey semantic message. Use div.