JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://unpkg.com/[email protected]"></script>
<script src="https://unpkg.com/[email protected]"></script>
<script src="https://unpkg.com/vue@latest/dist/vue.js"></script>
<div id="wrapper">
  <wrapped-input v-model="inputValue"></wrapped-input>
  <pre>value: {{ inputValue }}</pre>
</div>

CSS

html, body, #editor {
  margin: 0;
  height: 100%;
  font-family: 'Helvetica Neue', Arial, sans-serif;
  color: #333;
}

textarea, #editor div {
  display: inline-block;
  width: 49%;
  height: 100%;
  vertical-align: top;
  box-sizing: border-box;
  padding: 0 20px;
}

textarea {
  border: none;
  border-right: 1px solid #ccc;
  resize: none;
  outline: none;
  background-color: #f6f6f6;
  font-size: 14px;
  font-family: 'Monaco', courier, monospace;
  padding: 20px;
}

code {
  color: #f66;
}

JavaScript

new Vue({
  el: '#wrapper',
  data: {
  inputValue: '',
  },
  components: {
  	wrappedInput: {
    	props: { value: {} },
      template: `<input type="text" v-bind="$props" @input="$emit('input', $event.target.value)" placeholder="search"/>)
`
    },

  }
})