JSFiddle - React, Tailwind, and code Playground

HTML

<div id='app'>

<div id="component-pii-input" v-for="field in fields" v-bind:is="field.type" :key="field.id">

        </div>
        <button id='button-add-pii-component' v-on:click="addFormElement('pii-entry-field')" class="uk-button uk-button-primary uk-width-1-1 uk-margin-small">Add Set</button>
</div>

JavaScript

Vue.component('pii-entry-field', {
  data: function () {
    return {
fields: [],
    count: 0,
    }
  },
     methods: {
      addFormElement: function(type) {

      this.fields.push({
        'type': type,
        id: this.count++

      });

    },

     },
  template: ` <div class='pii-field'><div class="uk-margin">
            <component v-for="field in fields" v-bind:is="field.type" :key="field.id"></component>
             </div>
        
            <button id='button-add-pii-input' v-on:click="addFormElement('pii-input-field')" class="uk-button uk-button-default uk-width-1-1 uk-margin-small">Add Input</button>
            <hr>
            </div>`,
})

Vue.component('pii-input-field', {
  data: function () {
    return {

    }
  },

  template: ` <div>
            <select class="uk-select">
                <option disabled>Select Classification</option>
                <option>Name</option>
                <option>Address</option>
                <option>Email</option>
                <option>Phone</option>
                <option>Medical</option>
                <option>Financial</option>
            </select>
        
        <div>
            <input type="text" placeholder="Input">
        </div>
        <button v-on:click="removeFormElement">Remove Input</span>
        </div>`,
})

var app = new Vue({
  el: '#app',
    delimiters : ['[[', ']]'],
  data: {
    message: 'Hello Vue!',
    fields: [],
    count: 0,
  },
    methods: {
      addFormElement: function(type) {
      this.fields.push({
        'type': type,
        id: this.count++
      });
    },

    }
});