<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <div id="app">
    <button @click="change">修改</button>
    <ul>
      <li v-for="(val,index) in arr">
        {{val}}
        {{index}}
      </li>
    </ul>
  </div>
  <script src="vue.js"></script>
  <script>
    /* 
      Vue中 直接修改数组的索引  是没有办法驱动视图更新的
      因为Vue不能检测到数组索引的变动
      Vue.set(data数据,修改值的索引,修改的参数)
      Vue要大写
      Vue提供的一个全局的方法  用于向响应式对象中添加一个属性 并且确保这个新属性也是响应式的
      Vue.set = this.$set
      push() pop() shift() unshift() splice() sort() reverse()
      Vue重写的方法  用来实现响应式更新   
    */
    var app = new Vue({
      el: '#app',
      data: {
        arr: ['a','b','c','d'],
        person: {
          name:'zs',
          age: 18
        }
      },
      methods: {
        change(){
          // this.arr[0] = 'x'
          // console.log(1)
          // Vue.set(this.arr,0,'x')
          // this.$set(this.arr,0,'x')
          // this.person.name = 'lisi'
          // Vue.set(this.person,'name','lisi')
          this.arr.splice(0,1,'x')
        }
      }
    })
  </script>
</body>

</html>