I've previously put out a small series on recreating pokemon's original battle system in Vue.js (to some extent).
The series isn't done and could still be more polished, however, it does go a long way already:
Here's an overview of the articles I've posted in the series.
#1 Single file components #2 Attacks: $refs, Promises & event bus #3 Vuex: state management #4 Damage calculations #5 Transitions & animation