document.createElement() and manually append the element to its parent. That’s not hard to do, but it’s also not very friendly for visualizing the results, and when you’re trying to build a whole page, it gets really tedious. That’s not to mention the tedium of trying to locate an element so that you can change it. If you look at the
document API, it has more than enough functionality to write a whole web site, but the barrier to entry of complexity and repetition meant that few people (and mostly just professional dev teams) were able to produce anything of much scale.
Then in 2006, jQuery hit the scene. It made everything easier, by abstracting the granular DOM manipulation to higher-level functions that behaved a bit more intelligently and didn’t need to be told literally every detail (since a lot of the details are repeatable enough that they can be implicit defaults). Over the past eleven years, many additional frameworks have been created in this same vein, and the Model-View-Controller paradigm became prevalent.
html.js, or whatever it’s called), which accepts information about which files represent its children, and then calls each of those files, passing along the data you tell it to. Once you’ve finished working down the tree, each component script
returns its computed value and at the end you have a perfectly well-formed HTML page. If you want, you can make a page with just the components you’re used to from WordPress (header, sidebar, post, page, footer), or you can make every button and
td a component if your heart desires.