e 8 ay önce
ebeveyn
işleme
a1eaaf2d0a

+ 73 - 0
vue/vue初阶/16.数据监听.html

@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <div id="app">
+        <ul>
+          <li v-for="(item,index) in arr" :key="index">
+            {{index+1}}-我叫{{item.name}}--今年{{item.age}}--是一个{{item.sex}}孩
+          </li>
+        </ul>
+        <button v-on:click="changeDate">修改第二条数据</button>
+    </div>
+    <script src="./vue.js"></script>
+    <script>
+        var app = new Vue({
+         data:{
+            arr: [
+            {
+              name: "LiLi",
+              age: 10,
+              sex: "女",
+            },
+            {
+              name: "John",
+              age: 17,
+              sex: "男",
+            },
+            {
+              name: "Lucy",
+              age: 22,
+              sex: "女",
+            },
+            {
+              name: "Jack",
+              age: 20,
+              sex: "男",
+            },
+            {
+              name: "孙悟空",
+              age: 33,
+              sex: "男",
+            },
+            {
+              name: "猪八戒",
+              age: 30,
+              sex: "男",
+            },
+          ],
+         },
+         methods:{
+            changeDate() {
+                console.log("触发")
+                // this.arr[1].sex = '女'
+                this.arr[1] = { name:'林黛玉',age:6,sex:'女'}
+                // 数据更新
+                // 视图不变
+                // Vue2.0 => 响应式框架 
+                // MVVM => Object.defineProperty getter和setter 
+                console.log(this.arr,'arr')
+                // Vue.set(target,index/name,newValue)
+                // Vue.set(this.arr,1,{ name:'林黛玉',age:6,sex:'女'})
+                // this.$set(this.arr,1,{ name:'林黛玉',age:6,sex:'女'})
+            }
+         }
+         
+        }).$mount("#app");
+    </script>
+</body>
+</html>

+ 47 - 0
vue/vue初阶/17.事件代理.html

@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <div id="app">
+        <!-- 数据代理:
+            Object.defineProperty()
+            通过一个对象可以去代理另一个对象  并且可以修改其属性 
+        -->
+    </div>
+    <script src="./vue.js"></script>
+    <script>
+        // var app = new Vue({
+            
+
+        // }).$mount("#app")
+        let obj1 = {
+            name:"孙悟空",
+            age: 10,
+            sex: '男'
+        }
+        //Object.defineProperty(代理对象,属性,{value:新的值})
+        // Object.defineProperty(obj1,"name",{
+        //     value:"猪八戒"
+        // })
+        // Object.defineProperty(obj1,"age",{
+        //     value:33
+        // })
+        let num= 20;
+        Object.defineProperty(obj1,'age',{
+            get() {
+                console.log("读取")
+                return num;
+            },
+            set(value) {
+                console.log(value,"设置");
+                num = value;
+            }
+        })
+        console.log(obj1)
+    </script>
+</body>
+</html>