Component/template reuse

I would like to have a “template” that I can reuse on multiple pages, basically each of the pages that will utilize this html template will pass the object with the data and the template will render based on the passed in object.

Scenario

I have 4 tabs, tab 1 and tab 2 pages have a section called “events” and the data will be different for each of the event templates but it will have the same html same structure, the only difference will be is me passing the events object that has different data.
Just need to know where do I put my “events” template html and how do I add it to these 2 pages and pass the data object on render.

I think a more idiomatic way to approach this is to think of all those pages as really the same page, but using input properties to alter aspects of the content being presented.