zoukankan      html  css  js  c++  java
  • vue 数组对象更新

    一、概述

    在使用数组的时候,数组内部数据发生改变,但是与数组绑定的页面的数据却没有发生变化。

    示例代码如下:

    <template>
      <div style="margin-left: 10px;">
        <div v-for="(item,index) in nameList">
          <span>姓名: {{ item.name }}</span>
          <span>年龄: {{ item.age }}</span>
        </div>
        <button @click="update_test()">更新第2个</button>
      </div>
    </template>
    
    <script>
        export default {
          name: "test",
          data() {
            return {
              nameList:[
                {
                  id:"1",
                  name:"张三",
                  age:"18",
                },
                {
                  id:"2",
                  name:"李四",
                  age:"19",
                },
                {
                  id:"3",
                  name:"王五",
                  age:"20",
                },
              ],
            };
          },
          methods: {
            update_test(){
              this.nameList[1]={
                id:"2",
                name:"张小斐",
                age:"21",
              }
              console.log("更新后list",this.nameList)
            }
          }
        }
    </script>
    
    <style scoped>
    
    </style>
    View Code

    访问页面,点击按钮

    发现,数据是更新了。但是页面没有变化。

    注意:此时数据更新和另外2个,是有差异的,见上图。

    二、解决办法

    使用set方法

    完整代码如下:

    <template>
      <div style="margin-left: 10px;">
        <div v-for="(item,index) in nameList">
          <span>姓名: {{ item.name }}</span>
          <span>年龄: {{ item.age }}</span>
        </div>
        <button @click="update_test()">更新第2个</button>
      </div>
    </template>
    
    <script>
        export default {
          name: "test",
          data() {
            return {
              nameList:[
                {
                  id:"1",
                  name:"张三",
                  age:"18",
                },
                {
                  id:"2",
                  name:"李四",
                  age:"19",
                },
                {
                  id:"3",
                  name:"王五",
                  age:"20",
                },
              ],
            };
          },
          methods: {
            update_test(){
              let index=1
              let value={
                id:"2",
                name:"张小斐",
                age:"21",
              }
              this.$set(this.nameList,index,value)
    
              console.log("更新后list",this.nameList)
            }
          }
        }
    </script>
    
    <style scoped>
    
    </style>
    View Code

    刷新页面,再次点击,发现生效了。效果如下:

    本文参考链接:

    https://www.jb51.net/article/173906.htm

  • 相关阅读:
    C#关系运算符
    C#逻辑运算符
    C#位运算符
    C#赋值运算符
    C#条件运算符(?:)
    C#自增运算符(++)
    C#自减运算符
    C# sizeof运算符
    C# checked运算符
    最大值最小值
  • 原文地址:https://www.cnblogs.com/xiao987334176/p/14554989.html
Copyright © 2011-2022 走看看