zoukankan      html  css  js  c++  java
  • Vue动态新增对象属性

    Vue.set( target, key, value )

    • 参数

      • {Object | Array} target
      • {string | number} key
      • {any} value
    • 返回值:设置的值。

    • 用法

      向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性,因为 Vue 无法探测普通的新增属性 (比如 this.myObject.newProperty = 'hi'),注意对象不能是 Vue 实例,或者 Vue 实例的根数据对象。

     真实项目应用

    WebApi返回一个Json对象称作A,这个A有四十多个字段,某些字段还是Json对象字符串,即A嵌套着a、b、c Json对象。要在页面响应式处理这些字段值,data就要初始化四十多个字段,噢?不止,因为嵌套了a、b、c Json对象,,那大约六十多个字段。写这么多字段?没必要。

    数据库返回A对象如下(此处截图省略多个字段):

    data设置A对象:A即ConfigFormData里面的的Json对应a、b、c。其他属性动态添加例如TransitPort。  为什么a、b、c一定要初始化呢?往下看。

      ConfigFormData: {
              ConsignorInfoJson: {           
              },
              CustomerInfoJson: {          
              },
              AgentInfoJson: {
               
              },
    

    在html赋值:假如没有初始化ConsignorInfoJson,则ConsignorInfoJson就是undefined。undefined怎么可以点出属性呢,如果不初始化就会编译出错。这里的TransitPort因为没有初始化,因此一开始是undefined。在页面显示空白。

    <br> {{ ConfigFormData.ConsignorInfoJson.Addr=="" ? "":"Addr:"+ConfigFormData.ConsignorInfoJson.Addr}}
    
     <p class="title">中转港</p>
     <p class="content">{{ConfigFormData.TransitPort}}</p>
    

    动态添加属性:

     

     
  • 相关阅读:
    vue 组件轮播联动
    Echarts 解决饼图文字过长重叠的问题
    Echarts 背景渐变柱状图
    vue 组件间数据传递
    vue webpack build 打包过滤console.log()日志
    自定义字段排序
    vue 路由嵌套高亮问题
    微信小程序验证码获取倒计时
    解决小程序里面的图片之间有空隙的问题???
    axios使用
  • 原文地址:https://www.cnblogs.com/bibi-feiniaoyuan/p/9476824.html
Copyright © 2011-2022 走看看