Как реализовать такую логику во vue без document.querySelector?
Добавьте стили:

.child.red {
  background: red;
}
Обработчик клика пусть выглядит так: @click="n.em = !n.em".

А назначение класса так: :class="{ red: n.em }".
Один из способов: можно выводить цвет прямо в аттрибут style в зависимости от значения
<div class="child" :style="`background: ${(!!n.em) ? 'blue' : 'red'};`">{{ i + 1 }}</div>
click (i) {
       this.items[i].em = !this.items[i].em
}