виртуальный dom это тот, что создан в js созданием элементов и изначально не предусмотрен кодом в html и cssДа, например
var virtualElement = { name: 'span', attrs: [], children: [] };
или т.п. главная идея - сравнить виртуальное дерево с предыдущей версией - найти изменения и наложить их на реальный DOM.если написать весь сайт на js, он будет быстрее?Зависит от деталей.