JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://rawgit.com/vuejs/vue-class-component/master/dist/vue-class-component.js"></script>
<script src="https://vuejs.org/js/vue.min.js"></script>
<div id="app"></div>

TypeScript

import Vue = require('vue')
import Component from 'vue-class-component'

// The @Component decorator indicates the class is a Vue component
@Component({
  // All component options are allowed in here
  template: '<button @click="onClick">Click!</button>'
})
class MyComponent extends Vue {
  // Initial data can be declared as instance properties
  message: string = 'Hello!'
  // Component methods can be declared as instance methods
  onClick (): void {
    this.message = "Clicked";
  }
}

// mount
new Vue({
  el: '#app',
  render: h => h(MyComponent, {
    props: { propMessage: 'World' }
  })
})