const el = document.querySelector('.my_button') ..или.. var el = $('.my_button')
и попробовать закинуть этот элемент в какой-то другой блок (пусть даже в конец body) document.body.appendChild(el) ..или.. $('body').append($(el))
то вы увидите что что элемент будет перенесен, а не скопирован, так как мы работаем не с разметкой а объектами в памяти. <template>
...
<chat-message v-for="message in messages" messageText="message.text" messageTime="message.time">
...
</template>
<script>
import chatMessage from "./chat-message.vue"
export default {
components: {
chatMessage
},
data() {
return {
messages: []
}
},
methods: {
newMessage(data) {
this.messages.push({
time: data.messageTime,
text: data.messageText
})
}
},
mounted() {
socket.on("message", this.newMessage)
},
beforeDestroy() {
// Не забываем отписываться от подписок
socket.off("message", this.newMessage)
}
}
</script>
chatMessage
есть messageTime
, можно просто упустить и назвать time
так как имеется своя область замыкания и название переменной/пропса не будет конфликтовать, так же посоветую ознакомиться с синтаксом es6 .select input { ... }
... Превратится в ...
.select[v-asd34fd] input[v-asd34fd] { ... }
<v-select v-model="user" : items="users"></v-select>
... Превратится в (приблизительно) ...
<div v-asd34fd class="v-select">
<div class="v-select__label"></div>
<input class="v-select__hidden-input"/>
</div>