Как использовать однофайловый компонент много раз?
<chat-message ...> должен быть прописан в шаблоне текущего компонента с v-for директивой, а по событию нужно добавлять данные в массив в состоянии. Прямая работа с DOM не приветствуется, тем более здесь она вообще не в тему. Смотрите документацию по Vue.js
Я не такой эксперт во Vue, но тут вообще что-то явно не так, смысл Vue - работа с данными, а не с DOM. Вам нужно показывать ваше сообщение(компонент) по условию, а вы просто рисуете его в DOM. Его нужно вставлять как компонент в ваш шаблон и уже в него передавать данные, а данные обновлять с вашего сокета(с этим не работал, тут не помогу).