vue大型電商項目尚品匯(前臺篇)day05終結篇

来源:https://www.cnblogs.com/heymar/archive/2022/05/30/16326801.html
-Advertisement-
Play Games

前臺部分到此結束,一路走來還挺懷念,今天主要是對整個項目的完成做一個最後的收尾工作,對於功能上的需求沒有什麼了,主要就是項目上線的一些註意事項。 一.個人中心二級路由 當我們點擊查看訂單應該跳轉到個人中心 個人中心拆分兩個子路由組件 分好組件後,在routes裡面父組件寫上childre配置項 寫路 ...


前臺部分到此結束,一路走來還挺懷念,今天主要是對整個項目的完成做一個最後的收尾工作,對於功能上的需求沒有什麼了,主要就是項目上線的一些註意事項。

一.個人中心二級路由

當我們點擊查看訂單應該跳轉到個人中心

個人中心拆分兩個子路由組件

分好組件後,在routes裡面父組件寫上childre配置項

image-20220527110554370

寫路由不需要寫/了,寫跳轉路由需要寫全地址

image-20220527110748505

路由重定向

image-20220527110930228

二.我的訂單

獲取訂單列表詳情,保存數據

image-20220527115407921

註意這裡的佈局是採用的table,裡面每一個訂單為一個table

image-20220527165534620

一個訂單裡面可一次性買多個東西吧,所以一行就是一件物品,這裡的rospan要動態改為物品數組的長度

同時由於我們後面這些內容是集中顯示,所以只需要顯示一個的就可以了,並非每個遍歷出來都有一個這些列

image-20220527165939987

三.未登錄的導航守衛判斷

在未登錄的狀態下不應該能夠隨便進入訂單、購物車、個人中心等界面,所以需要到全局前置路由守衛設置許可權

image-20220527180554975

但是有個問題我們正常應該是點擊誰,然後提示登錄登錄完成後繼續進入的是這個頁面而並非是進入home

可以給我們往login跳的地方來一個query參數

image-20220527180806824

然後去我們點擊登錄按鈕這個判斷一下,不是直接跳到home界面了

image-20220527181043755

四.登錄的獨享守衛

我們進入交易界面,只能從購物車進入,其他地方不能進來,這裡會用到next第三種用法next(false)表示從哪來回哪去

image-20220527202058161

1.組件內守衛

我們支付成功界面只能從支付界面來,所以同樣的事情也可以由組件守衛完成

image-20220527202659988

五.圖片懶載入

vue-lazyload

它是一個插件,所以需要Vue.use,註意這裡我們的圖片需要引入,才能用

image-20220527212349428

然後給我們需要懶載入的圖片添加自定義指令

image-20220527212403249

來回顧一下自定義插件和自定義指令

首先自定義指令必須是暴露的一個對象,然後這個對象肯定是要封裝一個install方法,而且他接受兩個參數,一個是Vue,有了他可以做很多事情Vue.component、Vue.directive等,第二個參數是我們在註冊那裡傳進來的值

image-20220527212833890

參數可以為對象等任意形式

image-20220527212939223

那麼就可以用這個插件裡面來定義一個全局自定義指令,將這個指令的語法修改為傳進來的參數,後面是指令的回調,接受兩個參數,第一個是綁定這個指令的元素,第二個是這個元素的一些信息也可以拿到他的元素體內容

image-20220527213253275

六.vee-validate表單驗證

用的是vee-validate2版本

首先需要安裝並註冊,因為是一個插件,由於main入口文件內容已經過多,這裡可以把這個模塊單拎出來然後直接導入進入口文件

image-20220530094137632

image-20220530094146261

註冊之後需要引入一個配置項,後面表單屬性會用到主要是用來做中文匹配的。

image-20220530094554030

我們需要中文所以還要引入中文包

image-20220530094817434

配置好過後就可以對相應的input表單做一些處理了,基本格式沒變,加了一個name,一個自定義指令還有一個動態的類名,下麵的錯誤信息也要動態展現,這裡規則驗證跟node裡面的validate差不多

image-20220530101150819

我來說一下匹配規則,首先引入的中文包能保證我們的提示信息除特殊欄位也就是phone之外都轉換為中文,不要就是這種效果

image-20220530102229049

我們的關鍵字phone就是我們規定的attr匹配來進行轉換,你定義的是什麼,提示信息就會轉換為什麼,表單裡面name就是讓你去找配置裡面對應的什麼屬性

驗證碼部分同理

image-20220530102911780

密碼這裡跟上面差不多,說一下確認密碼部分,我們的規則已經在配置文件寫好了,這裡只需要在匹配規則寫上屬性名值為要匹配的值

image-20220530104811275

單選框需要用到自定義規則,true就返回true,false就走否定規則

image-20220530105449455

image-20220530105622937

最後一步關鍵,要全部驗證成功才能點擊註冊去發請求,他返回的是一個布爾值

image-20220530110124170

七.路由懶載入

當打包的時候,js包會變得非常大,載入也會很慢,我們可以把不同的路由對應的組件分割成不同的代碼塊,當路由訪問時再去載入

原理上是這樣

image-20220530111236189

可以簡寫為

image-20220530111507476

八.打包上線

1.map文件處理

當我們項目完成準備上線打包後,可以看到在我們的js文件夾裡面有很多的map文件

image-20220530112122497

先瞭解他是幹嘛的,因為我們打包之後,所有的js文件都是壓縮且加密的,如果出現錯誤無法提示哪一行哪一列有錯,而我們的map文件就是來做這件事情的,項目上線後會給你提示哪一行哪一列有錯誤,但是我們項目都上線了,一般也不需要提示錯誤信息了,所以一般是可以刪除的,也可以在vue.config.js裡面配置productionSourceMap為false也是可以的

image-20220530112420897

這樣打包出來就不會有map文件了。

2.伺服器

購買伺服器之後

  • 先修改密碼
  • 然後打開安全組,把那些埠號打開
  • 然後就可以通過xshell或者xftp去操作你的伺服器了

3.Nginx反向代理

先拋出一個問題:當用戶一訪問你這個伺服器的地址,怎麼就能直接訪問到你dist打包下的index.html,也就是怎麼就能找到你的項目,畢竟一個centos裡面有那麼多目錄

然後瞭解一個概念:我們用戶訪問的是買來的伺服器的地址,而我們項目裡面所有的數據介面都是向另一個伺服器要來的資源,我們買來的伺服器能向介面的伺服器要資源的這種行為就是Nginx反向代理,Nginx是一個伺服器,反向代理是一種行為

image-20220530144245800

流程:

  • xhell進入根目錄下的etc下的Nginx文件夾

  • 如果裡面只有四五個文件說明還沒有安裝Nginx(yum install nginx)

  • 安裝完nginx伺服器之後,打開nginx.conf文件,添加兩個配置項

  • 這個可解決用戶一訪問伺服器就訪問我們的項目設置

    image-20220530145646650

  • 這個可解決nginx反向代理問題

    image-20220530145709625

    image-20220530145802824

  • 最後 service nginx start讓nginx伺服器跑起來即可


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一,引入中國地圖 <div id="chinaMap"></div> import china from 'echarts/map/js/china.js' export default { data() { return { myChart: {}, echarts:echarts, }; }, ...
  • Bootstrap Bootstrap是Twitter推出的一個用於前端開發的開源工具包。它由Twitter的設計師Mark Otto和Jacob Thornton合作開發,是一個CSS/HTML框架。目前,Bootstrap最新版本為4.4。 註意,Bootstrap有三個大版本分別是 v2、v3 ...
  • jQuery的操作標簽 文本操作 $("選擇符").html() // 讀取指定元素的內容,如果$()函數獲取了有多個元素,則提取第一個元素 $("選擇符").html(內容) // 修改內容,如果$()函數獲取了多個元素, 則批量修改內容 $("選擇符").text() // 效果同上,但是獲取的 ...
  • #snail-player-native 一個純原生代碼編寫的h5視頻播放器, 功能完善,基本滿足使用,僅供學習,禁止商用 演示 演示加速 Install 1. git clone https://github.com/snail-boy/snail-player-native.git 2. 拷貝l ...
  • uni-simple-router 專為uniapp打造的路由器,和uniapp深度集成 通配小程式、App和H5端 H5能完全使用vue-router開發 模塊化、查詢、通配符、路由參數 使 uni-app實現嵌套路由(僅H5端完全使用vue-router) uniapp用到了很多vue的api, ...
  • 一、傳統的props 通過在父組件中給子組件傳值,然後在子組件中通過props接受數據 1 //父組件 2 <ValidateInput 3 type="text" 4 v-model="emailVal" 5 :rules='emailRules' 6 placeholder='請輸入郵箱地址' ...
  • 1、左右容器拖拽 2、容器內位置拖拽切換 3、判斷性拖拽(若不適配,滑鼠顯示禁止拖拽圖標) 4、點擊大標題,變輸入框修改,最後提交表單 <template> <div> <div class="left_list"> <div class="_flex"> <transition-group tag ...
  • ##前言 在 React 開發中如果不去管組件的重覆渲染問題,項目稍微複雜一點性能將不堪入目,下麵將介紹項目中最常見的例子及解決方案(僅 hooks 組件)。 ##預先瞭解所用知識 React.memo React.useCallback React.useMemo 沒錯,只需使用上面三點即可解決大 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...