ViewComponents are HTML Helpers on Steroids: reusable pieces of UI that are skinnable (using Partial Views) and redestributable. Just like the CustomControls of ASP.NET WebForms. A ViewComponent is: Reusable / redistributable; Skinnable; Easy to consume from Views (using fluent syntax) as well as easy to author (by using a simple set of base classes and interfaces); Able to provide rich UI components; Using a Component based model that will allow you to create shared functionality from which more specific components inherit from; In the end nothing more than a ViewModel created and populated by its Fluent wrapper. Just the ViewModel is used within the skin / partial view.
$ dotnet add package Skywalker.Web.Mvc.ViewComponentsNo README available.