百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

Vue实战086:Object.assign()用法和注意点

toyiye 2024-07-26 22:07 20 浏览 0 评论

前面在定义表单提交的时候我们用到了Object.assign()方法,这是ES6提供的对象合并方法。目前主流的chrome、safria、firefox、opera、Edge等浏览器是支持该方法,但是一些低版本的浏览器如IE并不支持该方法。Object.assign()方法的原型为:Object.assign(target, ...sources),可以将源对象(source)的所有可枚举属性复制到目标对象(target)中。

Object.assign()的好处和注意点

当我们需要定义大量的对象属性时我们就可以利用Object.assign()方法,可以大大减少我们要输出的代码量。当然如果定义的属性和target的已有属性重名就会被覆盖,如果这个属性值是一个引用类型那么其对应的引用属性值也会被修改。因为Object.assign()复制的是引用地址,所以赋值会指向了同一块内存区域。

Object.assign()的使用

Object.assign方法的第一个参数是目标对象,后面的参数都是源对象。这里的参数都是对象,如果该不是则会先转换成对象。如果只有一个参数则会直接返回该参数,这里我们定义了一个空的目标对象来拷贝自身属性并返回目标对象。这样在el-form中绑定registerForm对象,我们就可以在绑定表单属性的时候直接定义v-model对应的对象属性。

Object.assign()的应用

在提交注册的时候我们来打印下registerForm中的属性,在registerForm已经包含了我们在el-form中提交的所有对象属性和值。这个在数据比较多的时候表现的特别明显,比如我们开发的【精密工具智能開發系統】中一款刀具设计的参数就有好几十个,要实现数据的双向绑定我们就需要在data中定义对应的属性并用v-model绑定。

总结:

Object.assign方法是操作目标对象,直接将源对象属性拷贝到目标对象自身。当然被拷贝的属性必须是自有属性,不能继承自属性也不拷贝不可枚举的属性。当然你可以一次性拷贝多个对象的属性,只要对象与对象之间使用逗号分隔即可。以上内容是小编给大家分享的【Vue实战086:Object.assign()用法和注意点】,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。更多Vue实战技巧可以参考以下专栏:

为了方便学习,下面附上本文用到的源码:

<el-form :model="registerForm" ref="rulesForm" autocomplete="on" 
         :rules="rules" class="register-form">
  <div class="form-container">
      <el-form-item prop="username" label="用户名">
        <span> <svg-icon icon-class="user" /></span>
        <el-input placeholder="请输入用户名" name="username"
                  type="text" v-model="registerForm.username" autocomplete="on" />
      </el-form-item>
      <el-form-item prop="license" ref="fileupload" autocomplete="on"label="营业执照">
        <el-upload class="fileupload" action="..."
                    :show-file-list="false" :on-change="PicturePreview" :auto-upload="false"      
                    accept="image/png,image/gif,image/jpg,image/jpeg">
          <img v-if="ImageUrl"  :src="ImageUrl" alt="">
          <i v-else ref="uploadicon" class="el-icon-upload uploader-icon">
            <div slot="tip" class="el-upload__text upload__tip">上传照片</div> </i>
        </el-upload>
        <span>要求照片所有信息需清晰可见,内容真实有效,不得做任何修改!</span>
      </el-form-item>
  </div>
  <el-button :loading="loading" type="primary"  @click.native.prevent="register">注册</el-button>
</el-form>
//data初始化定义
data () {
  return {
    registerForm: {
        username:'',
        password: '',
        company: '',
        phone: '',
        email: '',
        license: '',
        picture: ''
    }
  }
},
//Object.assign
data () {
  return {
    registerForm: Object.assign({}),
  }
},

相关推荐

「编程」Java GUI 基础(java编程语言基础)

图形化学习是外功,内功外功配合才能所向披靡。一、JFrameJAVASWING导入包importjavax.swing.*导入包importjava.awt.*JFrameframe=new...

这六个Java技术当年是多么风光,而现在又有几个人用过

嗨,雷猴啊,今天我给大家分享下我的开发历程中,我知道的那些被淘汰的技术或者框架。不知道你们都知道吗?也不知道你们都有没有用过,但是它们之前都是风靡一时,让我们再来了解一次吧。偷偷告诉大家有些我甚至都没...

开发第一个Swing程序(开发第一个java程序实验报告)

packagecom.web.www;importjavax.swing.*;/**第一个Swing程序*/publicclassSwing1extendsJFrame{publicSw...

Java课程设计项目实例《远程屏幕分享监视》第2部分

Java课程设计项目实例《远程屏幕分享监视》第2部分1、服务器端ScreenMonitoringServer程序类及相关的功能方法的编程实现(1)创建出服务器端的ScreenMonitoringSer...

新手学Java编程语言怎么入门?知识点都帮你整理好了

新手学Java编程语言怎么入门?下面和千锋广州小编一起来看看吧!掌握语言基础是第一步,了解Java基础知识,Java关键字、核心概念或者基本编码技术。掌握操作符、控制执行流程、访问权限控制、复用类、多...

Java Swing组件“HelloWorld”程序演示实例

Java源代码:/*首先导入Swing需要的包*/importjavax.swing.*;importjavax.swing.UIManager;importjava.awt.*;import...

新年Java小游戏之「年兽大作战」祝您笑口常开

这个游戏加上编写文章,上班摸鱼时间加上回家的空闲时间,大概花了三天多。java写这玩应真的很痛苦,各种状态位,各种图片和逻辑判断,脑袋都快炸了。而且肯定没有前端的精致,效果一般,偶尔会有卡顿,各位就图...

10分钟掌握 JMeter接口测试的基础入门

嘿。大家好,我是4U:...

JMeter 的简单安装说明(jmeter安装配置)

最近在做一组性能测试,接触到了JMeter这个测试工具,在这里记录一下JMeter的介绍以及简单安装过程。JMeter简介...

Jmeter压测实例分享——新手儿也能一学就会!

JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。它可以用于测试静态和动态资源,例如静态文件、Java...

过年必备Java动态烟花教程如何用Canvas和Timer实现炫酷烟花动画

烟花是一种常见的庆祝活动和节日的方式,它们在夜空中绽放出各种颜色和形状,给人们带来美丽和欢乐。你是否想过用Java编程来模拟烟花的效果呢?如果你对此感兴趣,那么这篇教程就是为你准备的。在这篇教程中,你...

全程软件测试(九十五):Jmeter技能基础—读书笔记

jmeter是一款优秀的开源性能测试工具,目前最新版本3.0版本,官网文档地址:http://jmeter.apache.org/usermanual/index.html一、优点...

原创 JAVA Swing JFrame窗口的建立

importjava.awt.*;importjavax.swing.*;publicclassExample1extendsJFrame{//定义一个类继承JFrame类public...

Java Swing组件下的JComboBox组件实例

运行成功的界面:java源代码:一定要注意:执行环境(JRE)javaSE-1.8/*首先导入JButtontest所需要的包*/importjavax.swing.*;importjavax.s...

Java引包的几种方法(java 引用)

第一种方法可以在Superclass这里输入javax.swing.JFrame进行引包也可以在类体外面输入importjavax.swing.JFrame;进行引包还可以点击JFrame然后点击I...

取消回复欢迎 发表评论:

请填写验证码