Articles by Lewis D'Avanzo

What is a JavaScript Meta-framework?

No, not that Meta

What most developers call JavaScript frameworks (React, Vue, Svelte, etc) can more accurately be thought of as UI Libraries. While they can make writing the front end of websites and apps simpler, they have no opinions at all regarding what goes on further back in the stack. They don't even have prescribed methods of organizing the folders and files in your projects.

Full-fledged frameworks (think Rails or Django), on the other hand, will usually be very opinionated and expect the code to be organized in a certain way, with the hope that this will lead to shorter development time by getting rid of analysis paralysis and bikeshedding.

Thankfully, there are libraries available to fill that role in the JavaScript ecosystem. Since most UI libraries are called "frameworks", these more full-featured libraries have taken to calling themselves "meta-frameworks".

In a nutshell, they let JavaScript developers focus on the "what" and take care of most of the "how" for you.

Read more »

How to Export Instance Methods from React Function Components

"You can have a little imperative React, as a treat."

When building modern applications with React, Function Components and Hooks are the de facto way to do it. Hooks make your code more declarative and easier to reason about (usually).

However, with all great hammers, you run the risk of everything looking like a nail. Occasionally, some more object-oriented solutions might be the right tool for the job. For example, what if you had a child component that contained a function that needed to be called from the parent? You might want an instance method, but we don't use Classes anymore!

Fear not -- you don't have to abandon Hooks to be able to call methods on child components. In this post, I'll show you how -- using forwardRef and useImperativeHandle.

Read more »