NEO•ONE has integration with Vue applications.
Integrating NEO•ONE with Vue is a breeze using the generated NEO•ONE client APIs.
The NEO•ONE toolchain emits a service that aids in integrating a Vue application with NEO•ONE: contractsService.
The contractsService is a singleton which provides access to all of the generated NEO•ONE client APIs and smart contract methods.
<template>
  <div class="withdraw-class">
    <button v-on:click="withdraw">Withdraw</button>
  </div>
</template>
<script lang="ts">
import { contractsService } from './neo-one';
import Vue from 'vue';
export default Vue.extend({
  name: 'TestComponent',
  methods: {
    withdraw: function() {
      contractsService.one.withdraw.confirmed().then(
        // update something
      )
    },
  },
});
</script>
The contractsService makes responding to updates in the blockchain easy by providing access to observables. Here’s how you might use the contractsService to build a simple Vue component to update the current block count.
<template>
  <div class="block-count-class">
    <h1>Block: {{count}}</h1>
  </div>
</template>
<script lang="ts">
import { contractsService } from './neo-one';
import Vue from 'vue';
export default Vue.extend({
  name: 'TestComponent',
  data: function() {
    return {
      count: 0,
    };
  },
  created: function() {
    contractsService.client.block$.subscribe((block) => {
      this.count = block.block.index;
    });
  },
});
</script>