Markus Oberlehner wrote a good tutorial on how to use the Builder Pattern to create highly reusable listing views (think of an app with a lot of listing views for a multitude of different content types)

vue.js pattern