The Sitecore Rendering Engine renders Sitecore content using ASP.NET view components and partial views.
Generally, model-bound views are likely to be the ones you use most frequently. These are backed by a default Sitecore view component which binds component content to a provided type.
Custom view components are intended for use anywhere you have reusable rendering logic that is too complex for a model-bound view. For example, navigation menus, login panels, and search bars.
Partial views are generally for lightweight components on a Sitecore page that do not contain their own content, such as structural components that contain just placeholders.