title: Vue unshift only repeats the last item
body: <p>My problem is same as this issue:</p>
  
  <p><a href="https://laracasts.com/discuss/channels/vue/vue-unshift-only-repeats-the-last-item" rel="noreferrer">https://laracasts.com/discuss/channels/vue/vue-unshift-only-repeats-the-last-item</a></p>
  
  <p>I have an array like this:</p>
  
  <pre><code>remate: {id:1, lotes: [{id:1, nombre: lalala}, {id:2, nombre: lololo}]}
  </code></pre>
  
  <p>when I try put new items to remate.lotes the push work as expected, it push the new data to end of array but I need put the data to position 0 of array and here is the problem... the array is broken and put again my last array result.</p>
  
  <p>Here a video to show exact what happen to understand better and show the code.</p>
  
  <p><a href="https://vimeo.com/266804712" rel="noreferrer">https://vimeo.com/266804712</a></p>
  
  <p>I dont understand where is the problem.</p>
  
  <p>pd: I try put :key to my component but without results.</p>
  
  <p>Updated:</p>
  
  <pre><code>Page:
  &lt;loteForm :Remate="remate" key="loteFormNew"&gt;&lt;/loteForm&gt;
  
  &lt;template v-for="(lote, index) in remate.lotes"&gt; 
       &lt;Lote :Remate="remate" :Lote="lote" :key="'lote' + index"&gt;&lt;/Lote&gt;     
      &lt;hr&gt; 
  &lt;/template&gt;
  
  
  Component loteForm:
  export default {     
      name: 'Form',         
      components: {             
          'LoteFormClientes': LoteFormClientes,         
      },        
      props: {             
          Remate: {                 
              required: true,            
          },             
          Lote: {     
              required: false,     
          },        
      },         
      data () {        
          return {        
              form: new Form(this.Lote),       
          }     
      },       
      methods: {       
          async loteForm(){       
              this.form['remate_id'] = this.Remate.id;        
              const { data } = await this.form.post('/api/form/lote');     
              console.log(this.Lote);         
              if(this.Lote === undefined) {
                  //work as expected
                  this.Remate.lotes.push(data)              
                  //not working
                  this.Remate.lotes.unshift(data)              
              }                
          }       
     },      
  }       
  </code></pre>