I use the same templates for live preview as for the front end. Until a recent change in Craft 3, they worked fine for live preview, then they stopped showing most fields.
I use a lot of includes to build pages, for example, I send the id of an entry to a separate template to display a Matrix field. I just pass entry.id.