uniapp-商城-53-后臺 商家信息(更新修改和深淺copy)

1、概述

????????文章主要討論了在數據庫管理中如何處理用戶上傳和修改商家信息的問題,特別是通過深淺拷貝技術來確保數據更新的準確性和安全性。

????????首先,解釋了深拷貝和淺拷貝的區別:淺拷貝使得兩個變量共享相同的內存地址,而深拷貝則創建新的內存空間來存儲數據,確保修改一個變量不會影響另一個。接著,文章展示了在JavaScript中實現深拷貝的示例代碼。

????????隨后,詳細描述了商家信息修改的流程,包括頁面加載時獲取用戶信息、數據展示與復制、更新頁面邏輯展示以及后臺數據庫的處理邏輯,強調了使用深拷貝的重要性以保留原始數據并生成新數據。最后,文章提到了更新完成后通過提示和頁面跳轉來優化用戶體驗。

????????整體而言,文章提供了一個關于數據管理和更新的全面指南,強調了技術細節和用戶體驗的結合。
??????

2、深淺copy

??????????用戶將信息進行了添加和上傳,在我們的數據庫有我們用戶自己的商家信息。當然后面還可以把這個信息和用戶信息關聯起來。

????????但對于上傳后的信息,用戶可以進行修改。為此先準備一個deep copy,在很多語言中都有這樣一個問題。copy的數據如何修改的問題。

2.1 什么是深copy

????????淺copy 就只是定義一個變量A,其值存儲的位置P ? 依然在被拷貝變量B 的存儲的空間P。

????????深copy,就是定義一個變量A? ,然后將被copy的變量B 對應存儲空間P 存儲的值 copy過來,并新開辟存儲空間? 新P,來存儲剛剛copy過來的值。

????????因此,在沒有修改A 的值時, A和B 的值是一樣的。

????????修改后:

????????淺copy?? 修改A 的值時, A和B 的值都要修改。

????????深copy?? 修改A 的值時, A的值要修改。? B的值不會被修改。

2.2 js 中的深copy實現

es6的方式進行展開...就好,其他還有很多的方式。

//淺copy
<script>let obj1 = {name:"jd"age:12}let obj2 = obj1obj2.name = "tx"obj2.age = 13 console.log(obj1)   // 這里就看到obj1的name修改為tx,age修改為13 
</script>//深copy
<script>let obj1 = {name:"jd"age:12}let obj2 = {...obj1}  //深copy  復制值,并重新分配存儲空間obj2.name = "tx"obj2.age = 13 console.log(obj1)   // 這里就看到obj1的name沒有修改為tx,age沒有修改為13 console.log(obj1)   // 這里就看到obj2的name修改為tx,age修改為13 
</script>

3、如何進行商家信息修改

3.1 進入頁面獲取到用戶信息

onload

3.2 用戶將信息展示,且獲取的到數據復制給變量brandFormData

此處的brandFormData 和添加時 的數據就多一個 _id

這個?brandFormData 來自于數據庫? _id是數據庫自動生成。

看getbrand 方法:

3.3 進行數據更新的頁面邏輯

展示在頁面上就是通過頁面邏輯展示,沒有展示 _id

更新數據依然是 addAndUpdate 這個接口來做的,做了一個判斷,就是看有沒有_id.

3.4 后臺數據庫的邏輯

3.4.1 這里就是先預處理獲取到頁面傳來的數據

3.4.2 然后調用update

3.4.3 接著繼續數據的copy?? 這里使用的深copy(因為后面要刪除_id,給更新的數據準備,也要給doc 判斷修改那一條數據 做準備,必須要copy出來。)

通過深copy? 保留了原來的數據,又重新生成了新的數據。

3.4.4 進行數據更新

doc 的id 來至于頁面傳來的數據

update 中的數據來自于 深copy 后刪除掉 id 的數據,不刪除id 就要報錯,數據庫是不允許更新id的

4 修改或者添加完成給予提示和跳轉

                uni.showToast({title:“成功”;mask: true})//延時跳轉 回先前的頁面setTimeout(() => {uni.navigateBack();}, 1500)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/80619.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80619.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/80619.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

numpy模塊綜合使用

一、numpy模塊的綜合使用方法 # 使用矩陣的好處&#xff0c;矩陣對于python中列表&#xff0c;字典等數據類型一個一個拿來計算是會方便計算很多的&#xff0c;底層使用的是c語言 # 在數據分析和數據處理的時候也經常常用 import numpy as np array np.array([[1,2,3],[2,3,4…

【github分享】開發者學習路線圖

地址&#xff1a;GitHub - kamranahmedse/developer-roadmap: Interactive roadmaps, guides and other educational content to help developers grow in their careers. 介紹&#xff1a;涵蓋了所有領域的開發者路線圖&#xff0c;前端、后端、運維、全棧、編程語言、AI等。…

《Linux命令行大全(第2版)》PDF下載

內容簡介 本書對Linux命令行進行詳細的介紹&#xff0c;全書內容包括4個部分&#xff0c;第一部分由Shell的介紹開啟命令行基礎知識的學習之旅&#xff1b;第二部分講述配置文件的編輯&#xff0c;如何通過命令行控制計算機&#xff1b;第三部分探討常見的任務與必備工具&…

[Java實戰]Spring Boot 解決跨域問題(十四)

[Java實戰]Spring Boot 解決跨域問題&#xff08;十四&#xff09; 一、CORS 問題背景 什么是跨域問題&#xff1f; 當瀏覽器通過 JavaScript 發起跨域請求&#xff08;不同協議、域名、端口&#xff09;時&#xff0c;會觸發同源策略限制&#xff0c;導致請求被攔截。 示例場…

MyBatis快速入門——實操

默認&#xff1a;電腦搭建好了Maven環境 本次入門實驗使用的idea版本&#xff1a;ideaU2022.1 目錄 一&#xff1a;前期準備工作 1. 創建一個springboot工程 2. Maven環境配置 3. 在mysql數據庫中創建一個user表 4. 編寫實體類User 二&#xff1a; 引入MyBatis的相關依賴…

IPLOOK超輕量核心網,助力5G專網和MEC邊緣快速落地

隨著5G深入千行百業&#xff0c;行業客戶對核心網的靈活性、可控性和部署效率提出了更高要求。IPLOOK面向數字化轉型需求&#xff0c;推出了超輕量級核心網解決方案&#xff0c;具備體積小、資源占用少、部署靈活、易于維護等特性&#xff0c;廣泛適用于專網、實驗室、MEC邊緣云…

【前端】【HTML】【總復習】一萬六千字詳解HTML 知識體系

?? HTML 知識體系 一、HTML 基礎入門 1. HTML 簡介與作用 HTML(HyperText Markup Language,超文本標記語言)是構建網頁的基礎語言。它的核心作用是: 定義網頁內容的結構(標題、段落、圖片、表格等)提供語義化標簽,幫助搜索引擎與輔助設備理解頁面內容配合 CSS 實現…

VC++ 獲取CPU信息的兩種方法

文章目錄 方法一&#xff1a;使用 Windows API GetSystemInfo 和 GetNativeSystemInfo (基本信息)編譯和運行代碼解釋 方法二&#xff1a;使用 __cpuid&#xff08;CPU序列號、特性等&#xff09;代碼解釋&#xff1a; 開發過程中需要使用 VC獲取電腦CPU信息&#xff0c;先總結…

Docker Compose 的歷史和發展

這張圖表展示了Docker Compose從V1到V2的演變過程&#xff0c;并解釋了不同版本的Compose文件格式及其支持情況。以下是對圖表的詳細講解&#xff1a; Compose V1 No longer supported: Compose V1已經不再支持。Compose file format 3.x: 使用了版本3.x的Compose文件格式。 …

24、TypeScript:預言家之書——React 19 類型系統

一、預言家的本質 "TypeScript是魔法世界的預言家之書&#xff0c;用靜態類型編織代碼的命運軌跡&#xff01;" 霍格沃茨符文研究院的巫師揮動魔杖&#xff0c;類型注解與泛型的星軌在空中交織成防護矩陣。 ——基于《國際魔法聯合會》第12號類型協議&#xff0c;Ty…

(2025,AR,NAR,GAN,Diffusion,模型對比,數據集,評估指標,性能對比)文本到圖像生成和編輯:綜述

【本文為我在去年完成的綜述&#xff0c;因某些原因未能及時投稿&#xff0c;但本文仍能為想要全面了解文本到圖像的生成和編輯的學習者提供可靠的參考。目前本文已投稿 ACM Computing Surveys。 完整內容可在如下鏈接獲取&#xff0c;或在 Q 群群文件獲取。 中文版為論文初稿&…

MATLAB的cvpartition函數用法

1. 函數作用 cvpartition 將數據集劃分為訓練集和測試集&#xff0c;支持多種交叉驗證方法&#xff0c;包括&#xff1a; Hold-Out驗證&#xff1a;單次劃分&#xff08;如70%訓練&#xff0c;30%測試&#xff09;K折交叉驗證&#xff1a;數據分為K個子集&#xff0c;依次用其…

Java【網絡原理】(5)深入淺出HTTPS:狀態碼與SSL/TLS加密全解析

目錄 1.前言 2.正文 2.1狀態碼 2.2HTTP與HTTPS的關系 2.3SSL協議 2.3.1對稱加密 2.3.2非對稱加密 2.3.3中間人攻擊 2.3.4校驗機制 2.3.4.1證書 2.3.4.2數字簽名 1. 數字簽名的生成過程 2. 數字簽名的驗證過程 2.4TLS協議&#xff08;握手過程&#xff09; 3.小結…

代碼隨想錄算法訓練營第三十七天

LeetCode題目: 300. 最長遞增子序列674. 最長連續遞增序列718. 最長重復子數組2918. 數組的最小相等和(每日一題) 其他: 今日總結 往期打卡 300. 最長遞增子序列 跳轉: 300. 最長遞增子序列 學習: 代碼隨想錄公開講解 問題: 給你一個整數數組 nums &#xff0c;找到其中最長…

【Java ee初階】網絡原理

TCP協議 1.確認應答 實現可靠傳輸的核心機制 2.超時重傳 實現可靠傳輸的核心機制 3.連接管理 網絡部分最高頻的面試題 4.滑動窗口 提高傳輸效率的機制 5.流量控制 依據接收方的處理能力&#xff0c;限制發送方的發送速度。 6.擁塞控制 依據傳輸鏈路的處理能力&#xff0c…

B站取關腳本

個人的賬號可能被盜了&#xff0c;發現關注數量蹦到3000多&#xff0c;然后b站沒有一鍵取關的按鈕&#xff0c;并且對api的訪問有速度限制&#xff0c;然后網上的腳本很多都已經失效了&#xff0c;所以自己稍微寫個簡陋的 測試時間: 2025.05.11 使用步驟: 進入b站的關注頁面…

PyGame游戲開發(含源碼+演示視頻+開結題報告+設計文檔)

前言&#xff1a; 大二小學期python課上基于pygame做的一個游戲小demo&#xff0c;當時老師花了一天講解了下python基礎語法后&#xff08;也是整個大學四年唯一學習python的時間&#xff09;&#xff0c;便讓我們自學網課一周然后交項目&#xff0c;所以做的非常倉促&#xff…

使用 React 實現語音識別并轉換功能

在現代 Web 開發中&#xff0c;語音識別技術的應用越來越廣泛。它為用戶提供了更加便捷、自然的交互方式&#xff0c;例如語音輸入、語音指令等。本文將介紹如何使用 React 實現一個簡單的語音識別并轉換的功能。 功能概述 我們要實現的功能是一個語音識別測試頁面&#xff0…

C++ 雙峰高斯函數擬合

C 雙峰高斯函數擬合 一維高斯函數二維高斯函數多維高斯函數一維雙峰高斯函數代碼實現 二維雙峰高斯函數代碼實現 多維多峰高斯函數 在數據分析與清洗中經常遇到這樣的數據&#xff1a;數據不僅僅向單個中心靠攏&#xff0c;而是類似分段的向兩個甚至多個中心靠攏。數據向單個中…

【RP2350】香瓜樹莓派RP2350之LED

本文最后修改時間&#xff1a;2025年05月10日 01:57 一、本節簡介 本節以樹莓派pico2開發板為例&#xff0c;舉例如何寫一個LED驅動加進工程里。 二、實驗平臺 1、硬件平臺 1&#xff09;樹莓派pico2開發板 ①樹莓派pico2開發板&#xff08;作為仿真器&#xff09; ②micr…