The problem appears to be something to do with Vue creating it’s own virtual DOM. To fix it, initialize the twitch player within a method inside of vue.
const v = new Vue({
el: "#app",
methods: {
init: function() {
var options = {
width: 400,
height: 300,
channel: "twitchpresents"
}
var player = new Twitch.Player("SamplePlayerDivID", options);
player.addEventListener(Twitch.Player.READY, () => {
alert("Player is ready!!");
});
}
},
mounted: function() {
this.init();
}
});