10
0

16.数据监听.html 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <div id="app">
  10. <ul>
  11. <li v-for="(item,index) in arr" :key="index">
  12. {{index+1}}-我叫{{item.name}}--今年{{item.age}}--是一个{{item.sex}}孩
  13. </li>
  14. </ul>
  15. <button v-on:click="changeDate">修改第二条数据</button>
  16. </div>
  17. <script src="./vue.js"></script>
  18. <script>
  19. var app = new Vue({
  20. data:{
  21. arr: [
  22. {
  23. name: "LiLi",
  24. age: 10,
  25. sex: "女",
  26. },
  27. {
  28. name: "John",
  29. age: 17,
  30. sex: "男",
  31. },
  32. {
  33. name: "Lucy",
  34. age: 22,
  35. sex: "女",
  36. },
  37. {
  38. name: "Jack",
  39. age: 20,
  40. sex: "男",
  41. },
  42. {
  43. name: "孙悟空",
  44. age: 33,
  45. sex: "男",
  46. },
  47. {
  48. name: "猪八戒",
  49. age: 30,
  50. sex: "男",
  51. },
  52. ],
  53. },
  54. methods:{
  55. changeDate() {
  56. console.log("触发")
  57. // this.arr[1].sex = '女'
  58. // this.arr[1] = { name:'林黛玉',age:6,sex:'女'}
  59. // 数据更新
  60. // 视图不变
  61. // Vue2.0 => 响应式框架
  62. // MVVM => Object.defineProperty getter和setter
  63. console.log(this.arr,'arr')
  64. // Vue.set(target,index/name,newValue)
  65. Vue.set(this.arr,1,{ name:'林黛玉',age:6,sex:'女'})
  66. // this.$set(this.arr,1,{ name:'林黛玉',age:6,sex:'女'})
  67. }
  68. }
  69. }).$mount("#app");
  70. </script>
  71. </body>
  72. </html>