|
@@ -0,0 +1,69 @@
|
|
|
+<!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">
|
|
|
+ <div v-for="(item,index) in arr" :key="index">
|
|
|
+ {{item.name}}--{{item.age}}--{{item.sex}}
|
|
|
+ </div>
|
|
|
+ <button @click="getNews">修改数据</button>
|
|
|
+ </div>
|
|
|
+ <script src="./vue.js"></script>
|
|
|
+ <script>
|
|
|
+ var app = new Vue({
|
|
|
+ data: {
|
|
|
+ arr: [
|
|
|
+ {
|
|
|
+ name: "Lucy",
|
|
|
+ age: 11,
|
|
|
+ sex: "女",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "LiLi",
|
|
|
+ age: 31,
|
|
|
+ sex: "男",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "八戒",
|
|
|
+ age: 21,
|
|
|
+ sex: "男",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "八卦",
|
|
|
+ age: 23,
|
|
|
+ sex: "男",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "孙悟空",
|
|
|
+ age: 27,
|
|
|
+ sex: "男",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "唐僧",
|
|
|
+ age: 33,
|
|
|
+ sex: "女",
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ getNews() {
|
|
|
+ // 数据修改 视图未更新
|
|
|
+ // Object.defineProperty 中的getter和setter去对数据进行设置和修改
|
|
|
+ console.log("修改")
|
|
|
+ // this.arr[2] = {name:"小郑",age: 20,sex:"女"}
|
|
|
+ // 第一种写法
|
|
|
+ // Vue.set(target,index/name,obj)
|
|
|
+ Vue.set(this.arr,1,{name:"小郑",age: 20,sex:"女"})
|
|
|
+ // 第二种写法
|
|
|
+ this.$set(this.arr,2,{name:"小李",age: 24,sex:"男"})
|
|
|
+ console.log(this.arr)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ }).$mount("#app");
|
|
|
+ </script>
|
|
|
+ </body>
|
|
|
+</html>
|