JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://unpkg.com/vue@2.0.0/dist/vue.js"></script>
<div id="example" v-bind:style="{'border': (isValid ? '' : '1px solid red')}">
  <p>名前 {{ name }}</p>
  <p>
    <input type="text" v-on:input="updateName($event)">
  </p>
  <p v-show="!isValid">
    名前を入力してください
  </p>
  <p v-show="isValid">
    <button v-on:click="sendData">送信</button>
  </p>
</div>

JavaScript

var vm = new Vue({
  el: '#example',
  data: {
    name: '',
  },
  computed: {
    isValid: function () {
      return this.name.length > 0;
    }
  },
  methods: {
    updateName: function(event) {
      this.name = event.target.value;
    },
    sendData: function() {
      alert(this.name);
    }
  }
});
window.vm = vm;