Skip to content

Commit 11a2d76

Browse files
committed
refactor: 使用 Files 属性提高性能
1 parent 918c778 commit 11a2d76

File tree

9 files changed

+32
-25
lines changed

9 files changed

+32
-25
lines changed

src/BootstrapBlazor/Components/Upload/AvatarUpload.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
{
1313
@RenderAdd
1414
}
15-
@foreach (var item in GetUploadFiles())
15+
@foreach (var item in Files)
1616
{
1717
<div @key="item" class="@GetItemClassString(item)" id="@item.ValidateId" style="@ItemStyleString">
1818
<Avatar Url="@item.PrevUrl" />

src/BootstrapBlazor/Components/Upload/AvatarUpload.razor.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -153,11 +153,11 @@ private bool CheckCanUpload()
153153
// 允许多上传
154154
if (IsMultiple)
155155
{
156-
return !MaxFileCount.HasValue || GetUploadFiles().Count < MaxFileCount;
156+
return !MaxFileCount.HasValue || Files.Count < MaxFileCount;
157157
}
158158

159159
// 只允许单个上传
160-
return GetUploadFiles().Count == 0;
160+
return Files.Count == 0;
161161
}
162162

163163
/// <summary>
@@ -166,9 +166,8 @@ private bool CheckCanUpload()
166166
/// <returns></returns>
167167
protected override string? RetrieveId()
168168
{
169-
var files = GetUploadFiles();
170-
return files.Count == 0 ? $"{Id}_new" : files[0].ValidateId;
169+
return Files.Count == 0 ? $"{Id}_new" : Files[0].ValidateId;
171170
}
172171

173-
private string? AddId => GetUploadFiles().Count == 0 ? $"{Id}_new" : null;
172+
private string? AddId => Files.Count == 0 ? $"{Id}_new" : null;
174173
}

src/BootstrapBlazor/Components/Upload/ButtonUpload.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
</Button>
1313
@if (ShowUploadFileList)
1414
{
15-
<UploadPreviewList Items="GetUploadFiles()" IsDisabled="@IsDisabled" ShowProgress="@ShowProgress"
15+
<UploadPreviewList Items="Files" IsDisabled="@IsDisabled" ShowProgress="@ShowProgress"
1616
OnGetFileFormat="@OnGetFileFormat" OnCancel="OnCancel" CancelIcon="@CancelIcon" LoadingIcon="@LoadingIcon"
1717
InvalidStatusIcon="@InvalidStatusIcon" ValidStatusIcon="@ValidStatusIcon"
1818
ShowDownloadButton="@ShowDownloadButton" DownloadIcon="@DownloadIcon" OnDownload="@OnDownload"

src/BootstrapBlazor/Components/Upload/ButtonUpload.razor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,10 +219,10 @@ private bool CheckStatus()
219219
// 允许多上传
220220
if (IsMultiple)
221221
{
222-
return MaxFileCount.HasValue && GetUploadFiles().Count >= MaxFileCount;
222+
return MaxFileCount.HasValue && Files.Count >= MaxFileCount;
223223
}
224224

225225
// 只允许单个上传
226-
return GetUploadFiles().Count > 0;
226+
return Files.Count > 0;
227227
}
228228
}

src/BootstrapBlazor/Components/Upload/CardUpload.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
{
1313
@RenderAdd
1414
}
15-
@foreach (var item in GetUploadFiles())
15+
@foreach (var item in Files)
1616
{
1717
<div @key="@item" class="@GetItemClassString(item)">
1818
<div class="upload-item-body">

src/BootstrapBlazor/Components/Upload/CardUpload.razor.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ public partial class CardUpload<TValue>
2828

2929
private string? GetDisabledString(UploadFile item) => (!IsDisabled && item is { Uploaded: true, Code: 0 }) ? null : "disabled";
3030

31-
private bool ShowPreviewList => GetUploadFiles().Count != 0;
31+
private bool ShowPreviewList => Files.Count != 0;
3232

33-
private List<string?> PreviewList => GetUploadFiles().Select(i => i.PrevUrl).ToList();
33+
private List<string?> PreviewList => Files.Select(i => i.PrevUrl).ToList();
3434

3535
private string? GetDeleteButtonDisabledString(UploadFile item) => (!IsDisabled && item.Uploaded) ? null : "disabled";
3636

@@ -257,11 +257,11 @@ private bool CheckCanUpload()
257257
// 允许多上传
258258
if (IsMultiple)
259259
{
260-
return !MaxFileCount.HasValue || GetUploadFiles().Count < MaxFileCount;
260+
return !MaxFileCount.HasValue || Files.Count < MaxFileCount;
261261
}
262262

263263
// 只允许单个上传
264-
return GetUploadFiles().Count == 0;
264+
return Files.Count == 0;
265265
}
266266

267267
private async Task OnCardFileDelete(UploadFile item)

src/BootstrapBlazor/Components/Upload/DropUpload.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
}
5151
@if (ShowUploadFileList)
5252
{
53-
<UploadPreviewList Items="GetUploadFiles()" IsDisabled="@IsDisabled" ShowProgress="@ShowProgress"
53+
<UploadPreviewList Items="Files" IsDisabled="@IsDisabled" ShowProgress="@ShowProgress"
5454
OnGetFileFormat="@OnGetFileFormat" OnCancel="OnCancel" CancelIcon="@CancelIcon" LoadingIcon="@LoadingIcon"
5555
InvalidStatusIcon="@InvalidStatusIcon" ValidStatusIcon="@ValidStatusIcon"
5656
ShowDownloadButton="@ShowDownloadButton" DownloadIcon="@DownloadIcon" OnDownload="@OnDownload"

src/BootstrapBlazor/Components/Upload/InputUpload.razor.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,19 +112,18 @@ private bool CheckStatus()
112112
// 允许多上传
113113
if (IsMultiple)
114114
{
115-
return MaxFileCount.HasValue && GetUploadFiles().Count >= MaxFileCount;
115+
return MaxFileCount.HasValue && Files.Count >= MaxFileCount;
116116
}
117117

118118
// 只允许单个上传
119-
return GetUploadFiles().Count > 0;
119+
return Files.Count > 0;
120120
}
121121

122122
private async Task TriggerDeleteFile()
123123
{
124-
var files = GetUploadFiles();
125-
for (var index = files.Count; index > 0; index--)
124+
for (var index = Files.Count; index > 0; index--)
126125
{
127-
var item = files[index - 1];
126+
var item = Files[index - 1];
128127
await OnFileDelete(item);
129128
}
130129
CurrentValue = default;

src/BootstrapBlazor/Components/Upload/UploadBase.cs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,11 @@ public abstract class UploadBase<TValue> : ValidateBase<TValue>, IUpload
9494
/// </summary>
9595
public List<UploadFile> UploadFiles { get; } = [];
9696

97+
/// <summary>
98+
/// Gets the collection of files to be uploaded.
99+
/// </summary>
100+
protected List<UploadFile> Files => GetUploadFiles();
101+
97102
/// <summary>
98103
/// <inheritdoc/>
99104
/// </summary>
@@ -228,20 +233,24 @@ protected void Update(UploadFile file)
228233
}
229234
}
230235

236+
private List<UploadFile>? _filesCache;
231237
/// <summary>
232238
/// Get the files collection.
233239
/// 获得当前文件集合
234240
/// </summary>
235241
/// <returns></returns>
236242
protected List<UploadFile> GetUploadFiles()
237243
{
238-
var ret = new List<UploadFile>();
239-
if (DefaultFileList != null)
244+
if (_filesCache == null)
240245
{
241-
ret.AddRange(DefaultFileList);
246+
_filesCache = [];
247+
if (DefaultFileList != null)
248+
{
249+
_filesCache.AddRange(DefaultFileList);
250+
}
251+
_filesCache.AddRange(UploadFiles);
242252
}
243-
ret.AddRange(UploadFiles);
244-
return ret;
253+
return _filesCache;
245254
}
246255

247256
/// <summary>

0 commit comments

Comments
 (0)