您可以按照您想要的任何方式设置消息样式,我将像往常一样使用“Glassmorphism”并添加一些颜色。

.alert-success {    background: rgba( 114, 255, 136, 0.45 );    box-shadow: 0 8px 32px 0 rgba( 31, 38, 135, 0.37 );    backdrop-filter: blur( 10px );    -webkit-backdrop-filter: blur( 10px );    border-radius: 10px;    border: 1px solid rgba( 255, 255, 255, 0.18 );}

最后一步,我们需要创建消息容器并将该容器添加到 app.vue 文件中。

通知容器将简单地呈现存储在基本文件中的列表的数组。

不要忘记将“通知容器”添加到主 app.vue 文件中。

就是这样,我们可以重新启动我们的开发服务器并触发几次通知消息,只是为了检查结果。
\\\"Nuxt
通过模式和通知的集成,我们的 Nuxt.js 电子商务应用程序变得更加动态、交互和用户友好。这些元素有助于增强购物体验,使我们的客户能够预览产品并在整个旅程中随时了解情况。

随着我们不断构建和改进我们的电子商务平台,我们可以进一步扩展模式和通知的功能,根据特定用例进行定制,并确保为我们的用户提供无缝且引人入胜的体验。

如果您需要本教程的源代码,可以在此处获取。

","image":"http://www.luping.net","datePublished":"2024-07-31T23:20:03+08:00","dateModified":"2024-07-31T23:20:03+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為 Nuxt.js 電子商務平台設計響應式模態與使用者通知

為 Nuxt.js 電子商務平台設計響應式模態與使用者通知

發佈於2024-07-31
瀏覽:913

Designing Responsive Modals and User Notifications for Nuxt.js E-commerce Platform

在我的网络笔记中查看这篇文章!

在上一篇文章中,我们完成了电子商务商店主页的创建,现在是时候进一步添加一些动态元素,例如模式和通知。首先,模态窗口对于产品快速查看、产品管理等很有用,而通知作用至关重要,因为它是与用户沟通的最佳方式,从欢迎消息开始到销售消息结束。是的,正如您从介绍和标题中看到的那样,我们今天的文章将包含以下内容:

  1. 在 Nuxt.js 中创建自定义模态框
  2. 在我们的电子商务商店中配置通知消息

现在我们知道模式和警报有多重要,让我们研究如何将它们集成到我们的 Nuxt.js 电子商务应用程序中并了解实施细节。

1. 在 Nuxt.js 中创建自定义模态框

我们需要澄清,我们想要创建一个可重用的模态窗口,以便它可以以多种方式使用并显示不同的数据。为此,我们将创建一个主模态组件,其中包含特定于模态的样式和项目,这些样式和项目可以在我们的模态组件内呈现。

首先,在“ui”文件夹中创建一个 Modal.vue 文件,其中包含一个模糊背景的容器和一个包含动态渲染项目的模态 div。另外,我们将导入“xmark”图标并将其设为关闭模态窗口的按钮。


在我们的基础存储中,我们将添加两个带有 false 值的新变量“modalStatus”和字符串形式的“modalType”,并添加将修改这些值的简单操作。

aSetModalStatus(status) {
    this.modalStatus = status;
},
aSetModalType(type) {
    this.modalType = type;
},

状态变量将控制模态渲染行为,类型将更新不同的模态类型。

现在,当我们有了模态控制系统时,我们可以将模态组件添加到默认布局中。不要忘记导入我们的基础商店。


太好了,我们的可重用模态组件已准备就绪,现在如果我们想显示模态,我们只需更新基础存储中的 modalStatus 值即可。

此外,您可以向模态组件添加任何您想要的样式,但我建议您使用“Glassmorphism”,它会看起来很时尚。

.container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 100;
    display: flex;
    justify-content: center;
    align-items: center;
    .modal {
        min-width: 300px;
        min-height: 300px;
        background: rgba( 255, 255, 255, 0.9 );
        box-shadow: 0 8px 32px 0 rgba( 31, 38, 135, 0.37 );
        backdrop-filter: blur( 13px );
        -webkit-backdrop-filter: blur( 13px );
        border-radius: 10px;
        border: 1px solid rgba( 255, 255, 255, 0.18 );
        padding: 24px;
        display: flex;
        flex-direction: column;
        &__close {
            display: flex;
            justify-content: flex-end;
            width: 100%;
            &--btn {
                border: none;
                background-color: transparent;
                cursor: pointer;
                outline: none;
                display: flex;
                align-items: center;
            }
            &--icon {
                color: #6c757d;
                font-size: 20px;
            }
        }
    }
}

我们在这里做得很好,但我建议您继续并创建将使用我们的模式的第一个组件 - “产品预览”,该组件将在单击任何产品卡上的预览按钮后可用。让我们在“common”文件夹中创建一个新的 Vue 文件并添加一些 HTML/CSS 元素:


然后将此组件导入到Modal.vue文件中,并将其插入到内容div中。


现在,我们只需要在卡片中添加一个像“showPreview”这样的函数,这样用户点击后,该函数就会将模态类型设置为“product-preview”,并将模态状态设置为“true”。就是这样,我们有了可重用的模式和产品预览功能。
modal result
好的,我们需要继续并向 Nuxt.js 项目添加警报消息。

2. 在我们的电子商务商店中配置通知消息

好吧,我们可以添加诸如模式改变其样式之类的东西,并将其称为警报,听起来是一个简单而快速的解决方案。但是,如果同时触发两个或多个警报(例如“欢迎”消息和“您的愿望清单不为空”消息)怎么办?为了解决这个问题,我们将创建一个警报容器,该容器将根据传入消息的数量进行扩展。

首先,我们将向商店添加警报设置,类似于我们对模态部分所做的操作。将“notificationsList”数组添加到状态部分,并添加将从列表中推送和删除通知的通知操作。每个通知都有一个唯一的 ID,并显示状态、类型、消息和延迟(我们的消息可见的时间量)。

aSetNotification(payload) {
    const notification = {
        id: uuidv4(),
        show: true,
        type: payload.type,
        msg: payload.msg,
        delay: payload.delay ? payload.delay : 7000,
    }
    this.notificationsList.push(notification);
},
aRemoveNotification(id) {
    const indexToRemove = this.notificationsList.findIndex((element) => element.id === id);
    if (indexToRemove !== -1) {
        this.notificationsList.splice(indexToRemove, 1);
    }
},

下一步,我们需要创建一个“通知”组件,该组件将根据消息类型自行呈现消息。另外,我们需要使用延迟时间并自动删除消息。




您可以按照您想要的任何方式设置消息样式,我将像往常一样使用“Glassmorphism”并添加一些颜色。

.alert-success {
    background: rgba( 114, 255, 136, 0.45 );
    box-shadow: 0 8px 32px 0 rgba( 31, 38, 135, 0.37 );
    backdrop-filter: blur( 10px );
    -webkit-backdrop-filter: blur( 10px );
    border-radius: 10px;
    border: 1px solid rgba( 255, 255, 255, 0.18 );
}

最后一步,我们需要创建消息容器并将该容器添加到 app.vue 文件中。

通知容器将简单地呈现存储在基本文件中的列表的数组。




不要忘记将“通知容器”添加到主 app.vue 文件中。


就是这样,我们可以重新启动我们的开发服务器并触发几次通知消息,只是为了检查结果。
Nuxt js alert result
通过模式和通知的集成,我们的 Nuxt.js 电子商务应用程序变得更加动态、交互和用户友好。这些元素有助于增强购物体验,使我们的客户能够预览产品并在整个旅程中随时了解情况。

随着我们不断构建和改进我们的电子商务平台,我们可以进一步扩展模式和通知的功能,根据特定用例进行定制,并确保为我们的用户提供无缝且引人入胜的体验。

如果您需要本教程的源代码,可以在此处获取。

版本聲明 本文轉載於:https://dev.to/webcraft-notes/designing-responsive-modals-and-user-notifications-for-nuxtjs-e-commerce-platform-1gn2?1如有侵犯,請聯絡study_golang@163 .com刪除
最新教學 更多>
  • 如何使用 C++11 在 Windows 中將 Unicode UTF-8 檔案讀取為 Wstring?
    如何使用 C++11 在 Windows 中將 Unicode UTF-8 檔案讀取為 Wstring?
    在Windows 中將Unicode UTF-8 檔案讀入WStrings在Windows 程式設計領域,從檔案擷取Unicode (UTF-8) 資料的任務寬字元串(wstring) 可以透過C 11 標準提供的通用功能來完成。 利用std::codecvt_utf8 Facet此解決方案的關鍵在...
    程式設計 發佈於2024-12-21
  • 如何使用命令列匯出MySQL資料庫內容?
    如何使用命令列匯出MySQL資料庫內容?
    使用命令列匯出MySQL資料庫內容使用命令列匯出MySQL資料庫內容背景:使用 mysqldump 指令: mysqldump 指令專門用來匯出 MySQL 資料庫內容。使用方法如下:$ mysqldump -u [username] -p db_name > db_backup.sql匯出整...
    程式設計 發佈於2024-12-21
  • 如何增加MySQL中列的字元限制?
    如何增加MySQL中列的字元限制?
    修改MySQL表中的列大小最近,您在MySQL中建立了一個表,無意中將特定列的字元限制設定為300 ,而所需的限制應該是65,353。解決這個問題需要調整表的schema。 解決方案在於執行以下SQL語句:ALTER TABLE <table_name> MODIFY <col_n...
    程式設計 發佈於2024-12-21
  • 如何為特定 FastAPI 路由自訂錯誤回應?
    如何為特定 FastAPI 路由自訂錯誤回應?
    如何在 FastAPI 中自訂特定路由的錯誤回應在 FastAPI 中,引發 RequestValidationError 允許您傳送自訂錯誤回應。這對於需要滿足特定條件的端點非常有用,例如必需的標頭。 選項 1:覆寫預設例外處理程序此選項可讓您覆寫預設例外處理程序RequestValidation...
    程式設計 發佈於2024-12-21
  • 儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    解決PHP 中的POST 請求故障在提供的程式碼片段中:action=''而非:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"檢查$_POST陣列:表單提交後使用 var_dump 檢查 $_POST 陣列的內...
    程式設計 發佈於2024-12-21
  • 如何使用變數在 LESS 中動態建立屬性名稱?
    如何使用變數在 LESS 中動態建立屬性名稱?
    在LESS 中的屬性名稱中使用變數(動態屬性/屬性名稱插值)LESS 目前不支援動態插入屬性,儘管有關該主題的一些討論堆疊溢位。 解決方法#1:將動態產生的屬性注入到屬性值中This解決方法將動態建立的屬性注入到硬編碼的屬性值中: .vendors(@property, @value, @pre: ...
    程式設計 發佈於2024-12-21
  • 大批
    大批
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2024-12-21
  • 如何理解和管理 Web 開發中的預設 CSS 樣式?
    如何理解和管理 Web 開發中的預設 CSS 樣式?
    HTML 元素的預設CSS 樣式:綜合指南HTML 元素的預設CSS 樣式:綜合指南瀏覽器經常將預設CSS 樣式應用於HTML 元素,導致元素外觀變更跨不同平台。了解這些預設樣式表對於一致且可預測的 Web 開發至關重要。 查找瀏覽器預設CSS每個瀏覽器都維護自己的預設CSS 樣式表:Firefox...
    程式設計 發佈於2024-12-21
  • LaravelWhereIn 與 GroupBy:如何解決 MySQL 的 1055 錯誤?
    LaravelWhereIn 與 GroupBy:如何解決 MySQL 的 1055 錯誤?
    Laravel:語法錯誤或存取衝突:使用WhereIn和GroupBy時出現1055錯誤對於特定行資料檢索,Laravel允許我們在同一查詢中同時使用WhereIn 和GroupBy。但是,這有時會導致「語法錯誤或存取衝突:1055 錯誤」。 錯誤原因此錯誤發生在以下情況:MySQL 設定中啟用了嚴...
    程式設計 發佈於2024-12-21
  • 如何取消註冊 net/http 套件中的處理程序?
    如何取消註冊 net/http 套件中的處理程序?
    在net/http中取消註冊處理程序在net/http中,處理程序可以使用http.Handle動態註冊到特定的URL模式功能。但是,預設的多工器不提供取消註冊處理程序的機制。 取消註冊處理程序的一種方法是建立一個擴充標準 http.ServeMux 類型的自訂多工器。此自訂多工器可以包含用於取消註...
    程式設計 發佈於2024-12-21
  • Go的別名型別轉換會建立副本嗎?
    Go的別名型別轉換會建立副本嗎?
    別名之間賦值會觸發Go中的複製嗎? Go允許使用別名定義自訂類型。人們擔心這些別名類型之間的轉換是否會導致副本或僅導致結構變更。 考慮以下範例:type MyString string var s = "very long string" var ms = MyString(s...
    程式設計 發佈於2024-12-21
  • 如何找到 C++ 向量中的最大值或最小值?
    如何找到 C++ 向量中的最大值或最小值?
    在C 語言中尋找向量中的最大值或最小值從C 語言中的向量取得最大值或最小值是一項常見的程式設計任務。讓我們探討如何實現此目的並解決與 max_element 函數相關的特定錯誤。 使用 max_element 庫中的 max_element 函數傳回一個指向的迭代器到給定範圍內的最大值。若要將其與向...
    程式設計 發佈於2024-12-21
  • 插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入記錄時如何解決「一般錯誤:2006 MySQL 伺服器已消失」介紹:將資料插入MySQL 資料庫有時會導致錯誤「一般錯誤:2006 MySQL 伺服器已消失」。當與伺服器的連線遺失時會出現此錯誤,通常是由於 MySQL 配置中的兩個變數之一所致。 解決方案:解決此錯誤的關鍵是調整wait_tim...
    程式設計 發佈於2024-12-21
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1 和 $array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建...
    程式設計 發佈於2024-12-21
  • 在 Go 中使用 WebSocket 進行即時通信
    在 Go 中使用 WebSocket 進行即時通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSocke...
    程式設計 發佈於2024-12-21

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3