Components Template in VueJS

There are multiple ways to define the template of VueJS Component. In the last lesson ‘Introduction to Component’s, we defined in the template of the component as a string.

Even though the approach is good and keeps all the parts of the components at a single place, At times you might have a large HTML template that might be difficult to maintain inside the Component options object.

Using X-Template

In this tutorial let’s consider another way to defining templates i.e. X-Template. So instead of keeping our template in the javascript. We can add another element in our HTML and set its type to text/x-template, We also need to give it an id so that we can reference it. You can name the id anything that you would like.

Let’s consider the example in our Introduction to Components Tutorial.

Livewire Component Library
<script type="text/x-template" id="button-click-counter-template">
    <button class="btn btn-primary" @click="count++">{{count}}</button>

We have moved the template string from the Component options object to HTML inside the script tag. And we can now reference it in our Vue Component using the CSS selector.

Host Laravel Application on DigitalOcean

Use coupon 5balloons on this Cloudways Affiliate URL to get special discount.
        template : '#button-click-counter-template',

        data() {
            return {
                count: 0,

One drawback of this approach is that we don’t get the whole picture of our Component looking at the component’s code, we have to look into the HTML to check the template structure.

Join my VueJS Newsletter

As I advance in my Journey of learning VueJS, I will be working on different exercises and challenges. Subscribe to receive the latest tutorials (every week) directly in your inbox.

    I won't send you spam. Unsubscribe at any time.

    Powered By ConvertKit

    Site Footer