vue 使用lodash實(shí)現(xiàn)對(duì)象數(shù)組深拷貝操作
我就廢話不多說了,大家還是直接看代碼吧~
<template>
<div></div>
</template>
<script>
export default {
mounted() {
this.init();
},
methods: {
init() {
let lodash = require('lodash');
let obj1 = {
a: 1,
b: { f: { g: 1 } },
c: [1, 2, 3],
h: () => {
return 123;
},
k: undefined
};
let obj2 = lodash.cloneDeep(obj1);
obj2.b.f.g = 2;
obj2.c = [1, 2];
obj2.h = 1;
console.log(obj1);
console.log(obj2);
}
}
};
</script>

如果本篇文章對(duì)你有幫助的話,很高興能夠幫助上你。
補(bǔ)充知識(shí):vue iview上傳多文件只發(fā)送一次ajax請(qǐng)求,并根據(jù)上傳進(jìn)度顯示上傳進(jìn)度條
前言
基于iview的上傳組件(Upload)以及進(jìn)度條組件(Progress)
思路
使用Upload組件提供的上傳文件之前的鉤子,將所有上傳文件攔截下來,保存在本地臨時(shí)數(shù)組,使用axios來進(jìn)行上傳

完整示例
進(jìn)度條部分,請(qǐng)上傳一個(gè)大文件來查看效果
<template>
<Form :model="formData" :label-width="80">
<FormItem class="upload" label="上傳文件">
<Upload
:before-upload="handleUpload"
:action="''"
:multiple="true"
>
<Button icon="ios-cloud-upload-outline">請(qǐng)選擇附件</Button>
</Upload>
<!-- 進(jìn)度條 -->
<Progress v-if="upload.fileProgressShow" :percent="upload.fileProgress" />
<!-- 顯示列表 -->
<ul>
<li
v-for="(item, index) of formData.dispalyFile"
:key="index"
>
<span>{{ item.name }}</span>
<Icon type="md-close" @click="handleRemove(index)" />
</li>
</ul>
</FormItem>
</Form>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
formData: {
dispalyFile: [] // 臨時(shí)數(shù)組,同時(shí)用于顯示在頁面
},
// 上傳配置
upload: {
look: true, // 控制多文件上傳,只觸發(fā)一次ajax請(qǐng)求
fileProgressShow: false, // 進(jìn)度條
fileProgress: 0 // 進(jìn)度條進(jìn)度
}
};
},
methods: {
handleUpload(selectFile) {
// 臨時(shí)數(shù)組,同時(shí)用于顯示在頁面
this.formData.dispalyFile.push(selectFile)
// 控制多文件上傳,只觸發(fā)一次ajax請(qǐng)求
if (this.upload.look) {
this.upload.look = false;
// 延遲請(qǐng)求,等待所有文件都從本地讀取完畢
setTimeout(() => {
let formData = new FormData();
this.formData.dispalyFile.map(item => {
// files為后臺(tái)接收參數(shù)
// []為多文件數(shù)組
formData.append('files[]', item);
})
axios.request({
url: '/upload',
method: 'post',
data: formData,
headers: { 'Content-Type': 'multipart/form-data' },
onUploadProgress: (progressEvent) => {
// 用于上傳過程中顯示進(jìn)度條
if (progressEvent.lengthComputable) {
// 顯示進(jìn)度條
this.upload.fileProgressShow = true;
// 計(jì)算當(dāng)前進(jìn)度
let curValue = (progressEvent.loaded / progressEvent.total * 100).toFixed(0);
// 賦值給進(jìn)度條組件
this.upload.fileProgress = parseInt(curValue);
}
}
})
.then(res => {
// 上傳成功處理
// 隱藏進(jìn)度條
this.upload.fileProgressShow = false;
})
.catch(() => {
// 上傳失敗處理
// 隱藏進(jìn)度條
this.upload.fileProgressShow = false;
})
}, 50);
}
return false;
}
}
};
</script>
<style scoped>
.upload {
width: 40%;
}
</style>
效果圖
上傳多文件,只進(jìn)行了一次ajax請(qǐng)求,這里xlz是一個(gè)超大壓縮包,用于展示進(jìn)度條效果, binary 為二進(jìn)制文件

如果本篇文章對(duì)你有幫助的話,很高興能夠幫助上你。希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Vue用axios發(fā)送post請(qǐng)求自動(dòng)set cookie
本篇文章主要介紹了Vue用axios發(fā)送post請(qǐng)求自動(dòng)set cookie,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-05-05
vue項(xiàng)目國際化vue-i18n的安裝使用教程
最近接觸學(xué)習(xí)Vue.js框架結(jié)合Element-ui組件開發(fā)項(xiàng)目。由于最近需要實(shí)現(xiàn)國際化功能,所以下面這篇文章主要介紹了vue項(xiàng)目國際化vue-i18n的使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2018-03-03
在Vue3中使用localStorage保存數(shù)據(jù)的流程步驟
在前端開發(fā)中,尤其是利用Vue3構(gòu)建現(xiàn)代Web應(yīng)用時(shí),掌握如何使用本地存儲(chǔ)(localStorage)來保存數(shù)據(jù)是非常重要的能力,在這篇博客中,我將詳細(xì)介紹如何在Vue3中使用localStorage保存數(shù)據(jù),并提供示例代碼來幫助理解,需要的朋友可以參考下2024-06-06
Vue3在jsx下父子組件實(shí)現(xiàn)使用插槽方式
這篇文章主要介紹了Vue3在jsx下父子組件實(shí)現(xiàn)使用插槽方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
vue+elementui 對(duì)話框取消 表單驗(yàn)證重置示例
今天小編就為大家分享一篇vue+elementui 對(duì)話框取消 表單驗(yàn)證重置示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10
vue項(xiàng)目中圖片選擇路徑位置static或assets的區(qū)別及說明
這篇文章主要介紹了vue項(xiàng)目中圖片選擇路徑位置static或assets的區(qū)別及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue.extend 登錄注冊(cè)模態(tài)框的實(shí)現(xiàn)
這篇文章主要介紹了Vue.extend 登錄注冊(cè)模態(tài)框的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
解決vue中post方式提交數(shù)據(jù)后臺(tái)無法接收的問題
今天小編就為大家分享一篇解決vue中post方式提交數(shù)據(jù)后臺(tái)無法接收的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08

