| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | 
							- <!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>
 
-     <script src="../../vue.js"></script>
 
-   </head>
 
-   <body>
 
-     <div id="app">
 
-       <p>{{ msg }}</p>
 
-       <p><button @click="msg = 'hi'">修改msg</button></p>
 
-       <ul>
 
-         <li v-for="l of list" :key="l">{{ l }}</li>
 
-       </ul>
 
-       <button @click="changeList">修改list</button>
 
-       <ul>
 
-         <li v-for="(v, p) of user" :key="p">{{ p }} = {{ v }}</li>
 
-         <button @click="user.name = 'guoguo'">修改name属性为 guoguo</button>
 
-         <!-- 下面直接给对象 添加或者删除 属性时 视图是不会更新的(即非响应式的) -->
 
-         <button @click="user.sex = '男'">新增一个属性sex</button>
 
-         <button @click="delete user.hobby">删除属性hobby</button>
 
-         <!-- 如果对象属性的新增和删除 能是响应式的 要使用Vue提供两个方法:  -->
 
-         <!-- Vue.set( target, propertyName/index, value ) | vm.$set() 响应式添加对象属性 -->
 
-         <!-- Vue.delete( target, propertyName/index ) | vm.$delete() 响应式删除对象属性 -->
 
-         <button @click="$set(user, 'sex', '男')">响应式-新增属性sex</button>
 
-         <button @click="$delete(user, 'hobby')">响应式-删除属性hobby</button>
 
-         <button @click="user = {...user, sex: '女'}">
 
-           新值换旧值实现响应式
 
-         </button>
 
-       </ul>
 
-     </div>
 
-     <script>
 
-       var vm = new Vue({
 
-         data: {
 
-           msg: 'hello', // 针对 基本数据类型, 当值被替换后,Vue是很容易监听到的
 
-           list: [1, 2, 3],
 
-           user: {
 
-             id: 1,
 
-             name: '大侠',
 
-             hobby: ['篮球', '足球'],
 
-           },
 
-         },
 
-         methods: {
 
-           changeList() {
 
-             // 1 下面修改数组 是不会引发视图更新(即非响应式的)
 
-             // this.list[1] = 4; // 非响应式
 
-             // 2 因此 要注意:其一:使用 Vue提供的数组变更方法 才会 引发视图更新。
 
-             /**
 
-               push()
 
-               pop()
 
-               shift()
 
-               unshift()
 
-               splice()
 
-               sort()
 
-               reverse()
 
-              * */
 
-             // 下面是响应式的
 
-             // this.list.splice(1, 1, 4);
 
-             // this.list.push(5);
 
-             // 3 因此 要注意:其二:用新数组 替换 旧值 也能引发视图更新
 
-             var newArr = [...this.list]; // 拷贝原list数组
 
-             newArr[1] = 4;
 
-             this.list = newArr;
 
-           },
 
-         },
 
-       }).$mount('#app');
 
-     </script>
 
-   </body>
 
- </html>
 
 
  |