Бегло просмотрел комменты и не увидел предложения использовать директиву v-once.
Однократно рендерит элемент или компонент. При повторном рендеринге он, а также все его потомки, рассматриваются как статический контент и пропускаются. Это поможет увеличить производительность обновлений. https://ru.vuejs.org/v2/api/#v-once
window - глобальный объект браузера, window имеет свойство document, который так же проксируется в глобаль (window.document === document), document включает html, в котором, в свою очередь, находится body.
А в рамках этого вопроса - нет, фактически отличий в работе 3 вариантов нет