Functional components are as simple as a render function. They don't have any sort of data, function, or access to the outside world.
They were first introduced in Vue as a JavaScript object render() function only; later, they were added to vue-template-compiler for the Vue single file application.
A functional component works by receiving two arguments: createElement and context. As we saw in the single file, we only had access to the elements as they weren't in the this property of the JavaScript object. This occurs because as the context is passed to the render function, there is no this property.
A functional component provides the fastest rendering possible on Vue, as it doesn't depend on the life cycle of a component to check for the rendering; it just renders each time data is changed.