Console error crashes: [Vue warn]: Avoid the re-renders. Instead, use a property based on the prop's value. Prop being mutated: "hover" I can't fix it.
HTML
<div id="body"> <div class="gallery"> <div is="item" v-for="(item, index) in items" v-bind="item"> </div> </div> </div> <script src="https://unpkg.com/vue"></script> Js
;(function(){ 'use strict'; Vue.component('item', { template: ` <div id="item" v-on:mouseenter="show" v-on:mouseleave="hide" class="item a"> <div class="hover-strip" v-bind:class="{ visible: hover }"></div> </div> `, props: ['hover'], data () { return { } }, methods: { show: function (event) { this.hover = true; }, hide: function (event) { this.hover = false; } } }) new Vue({ el: '#body', data: function () { return { items: [ { hover: false }, { hover: false } ] } } }); }()); The code on jsfiddle.net https://jsfiddle.net/ngk675qh/