Как создать компонент в vue.js?

Слышал что в vue есть разные компоненты которые позволяют писать новые теги в html которые дальше заменяются шаблоном каким то, подскажите пожалуйста как это сделать, желательно с примером.

Тут нет ничего сложного, просто на Vue вызываем метод компонент (component) в который нам нужно ввести два параметра, насколько я понял, первый это как будет называться тег в html, а второй это экземпляр vue со специфичными для него данными, и шаблоном в который эти данные будут проецироваться, если попытаться спроецировать данные из другого vue объекта то не сработает)

Vue.component('my-component', {
data: function(){
return {textMessage:'Hello, i am your component!'}
}
,
template: '

{{ textMessage }}

'
})


var Vue = new Vue({
el:"#template",
})

Далее после создания компонента обязательно нужно создать экземпляр класса Vue, который привязать по id к какому то блоку.

<div id="template">

Последний блок кода это привязанный к html vue объект, в который мы размещаем пользовательский компонент, вот и всё)