vue大型電商項目尚品匯(前臺篇)day01

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

學完vue2還是決定先做一個比較經典,也比較大的項目來練練手好一點,vue3的知識不用那麼著急,先把vue2用熟練了,vue3隨時都能學。 這個項目確實很經典包含了登錄註冊、購物車電商網站該有的都有,後面還會結合elementUI構件後臺管理界面。拭目以待! 一.初始化腳手架環境 vue creat ...


學完vue2還是決定先做一個比較經典,也比較大的項目來練練手好一點,vue3的知識不用那麼著急,先把vue2用熟練了,vue3隨時都能學。
這個項目確實很經典包含了登錄註冊、購物車電商網站該有的都有,後面還會結合elementUI構件後臺管理界面。拭目以待!

一.初始化腳手架環境

vue create創建vue的腳手架環境

image-20220516143539454

裡面什麼是什麼配置文件這些就不同多說了,前面已經說過了,來說一下沒有說過的一些配置。

  • 當我們npm run serve跑項目的時候自動打開瀏覽器,對package.json啟動serve的命令加一個open參數

    image-20220516144251461

  • 關閉eslint校驗功能

    image-20220516144407334

  • src文件簡寫,配置他的別名,因為後面可能經常會引入這個文件夾下的東西,經常要./或者../等,所以直接配置src文件夾別名為@,在jsconfig.js裡面配置,註意新版腳手架一般都已經配置好了

    image-20220516144620320

二.項目路由分析

image-20220516151911776

首先分析下組件

路由組件:首頁(home)、搜索頁(search)、登錄頁(login)、註冊頁(register)

非路由組件:頭部header(首頁、搜索頁、登錄、註冊)、尾部footer(首頁、搜索頁)

三.Header和Footer非路由組件

根據以前創建一個項目的步驟,首先分好組件,然後完成靜態頁面創建,可以先放在App裡面運行一下,然後把各自的代碼放到組件裡面去,拆分組件完成靜態頁面嘛,第二步就是完成完成動態數據的創建這些,第三步就是這些業務邏輯事件這些的完成,所以這裡先完成Header和Footer的文件夾創建,註意以前是直接在components裡面創建一般組件,現在是需要個文件夾裡面再來個index.vue,因為這個組件可能有其他的依賴比如一些圖片等所以還在這個文件夾裡面操作一些其他的東西。

image-20220516154611943

然後這裡的css格式採用的是less格式,所以需要下載 less和less-loader

image-20220516155839501

組件引入到App組件後發現還是有點css沒有完整,那是因為有一些公共樣式,需要引入到public文件夾,同時link方式引入到index.html頁面,這裡同時也要註意一下,後面打包的時候在public文件夾下麵的文件會原封不動打包到dist目錄裡面去

啟動項目發現一個錯誤,就是代碼裡面有一個需要引入images裡面的圖片,所以前面說需要將一個組件單獨創建一個文件夾,因為還有可能放入其他東西的

image-20220516160420354

image-20220516160456105

現在就可以啟動成功了,這個時候需要將公共樣式放到public下麵,並link引入到index.html

靜態組件導入完畢

image-20220516161058712

四.路由組件

下麵開始佈置路由組件,剛纔分析的四個路由組建配置在pages文件夾下,同樣的也是採用文件夾形式

image-20220516163645268

然後就開始配置router配置文件

image-20220516164132116

在入口文件導入並加入vm配置項

image-20220516175838190

最後在該呈現我們路由組建的位置用router-view標簽進行占位即可完成路由的搭建

1.路由組件和非路由組件的區別

  • 路由組件一般是放在pages文件夾裡面,非路由組件一般是放在components文件夾裡面
  • 路由組件需要在router配置文件裡面進行註冊,好讓router進行kv的匹配,非路由組件註冊在父級組件,以組件標簽形式使用
  • 註冊完路由也就是在vm寫完router之後,不管是vm還是vc身上都有了$router(一般進行編程式導航跳轉,push、replace等)、$route(一般獲取路由的信息,如query、路徑、params等)兩個api

2.路由的跳轉

兩個跳轉方法,一個是router-link,一個是通過router這個api的push、replace方法,前者是聲明式導航,後者是編程式導航,聲明式導航能做到的編程式導航都可以做到,但是編程式導航還可以完成一些邏輯要求,比如我們點擊登錄這個時候不光是要跳轉還要給數據發到ajax伺服器,所以這個時候只能編程式導航了。

首先我們的登錄註冊直接跳到登錄註冊的頁面上去,沒有其他邏輯,所以直接用router-link

image-20220516205224465

點擊搜索按鈕後期有一些業務邏輯,採用編程式跳轉

image-20220516205412463

image-20220516205543094

3.路由重定向

在項目跑起來後,訪問/根目錄立馬會跳轉到首頁,一個新的路由,匹配的key為*,一個全新的配置項 redirect值為我們要重定向的組件路徑

image-20220516210843984

五.路由元信息的使用

現在的問題,我們home和search這兩個組件有footer,但是登錄和註冊沒有footer組件,通過v-show來做,主要是判斷的依據,可以用到當前切換過來的這個$route這個api裡面的path或者name,但還是那個老問題,如果需要配置幾百個路由組件就有點麻煩了,這裡可以給meta路由元信息添加自定義信息,誰該顯示,誰不該顯示,直接v-show判斷這個meta值就可以了

image-20220516213504394

image-20220516213544166

六.路由傳遞參數

當我們點擊搜索要將我們的參數傳到搜索頁面,有兩種參數,一種是query一種是params看你想要哪種,如果要獲取params動態參數那麼首先要到路由配置項將我們匹配的規則修改一下,註意占位要加引號,並且params要發參數過去,對象配置裡面只能用name,所以最好這裡也把name配置好

image-20220516223610449

這裡我把兩個參數都獲取過來

image-20220516221856674

search界面接受參數

image-20220516222019725

1.路由傳參經典面試題

  • 路由傳參對象寫法path能和params一起使用嗎?

    不能

  • 如何指定params參數可傳可不傳?

    如果配置路由項的時候,已經配置好了params的路由匹配規則,但是你傳參的時候你又不傳params,那麼這個時候就會出現bug路徑會出現問題

    image-20220516223030646

    image-20220516223647281

    所以真的想要實現這個動態參數可傳可不傳的效果需要在路由配置裡面加上一個?,跟正則裡面一樣?表示0到多個

    image-20220516223831301

    這樣就不會出現路徑問題了,這個params參數就可以可傳可不傳了。

  • 上面這種方法雖然可以實現params參數可傳可不傳,但是如果傳的是一個空字元串又會出現bug,路徑又會出現問題,search這個路徑又沒有了,這個要怎麼解決?

    在我們傳params對象傳參這裡通過一個亦或語法來解決

    image-20220516224503573

  • 路由組件能不能傳遞props數據?

    可以,而且有三種第一種是寫死的數據,在路由配置裡面寫

    image-20220516224729231

    image-20220516224812349

    第二種是值為true,表示會將傳過來的所有params數據接受到

    image-20220516224904344

    image-20220516224948159

    第三種是函數的形式,並且可以拿到這個路由組建的$route,,並且跟計算屬性一樣靠的就是和這個返回值,那麼就可以拿到query了,params更不用說了

    image-20220516232203642


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

-Advertisement-
Play Games
更多相關文章
  • 本文介紹什麼是 SQL 子查詢,如何使用它們。子查詢常用於 WHERE 子句的 IN 操作符中,以及用來填充計算列。 一、子查詢 SELECT 語句是 SQL 的查詢。我們迄今為止所看到的所有 SELECT 語句都是簡單查詢,即從單個資料庫表中檢索數據的單條語句。 查詢(query) 任何 SQL ...
  • 資料庫升級,是一項讓人喜憂參半的工程。喜的是,通過升級,可以享受新版本帶來的新特性及性能提升。憂的是,新版本可能與老的版本不相容,不相容主要體現在以下三方面: 語法不相容。 語義不相容。同一個SQL,在新老版本執行結果不一致。 新版本的查詢性能更差。 所以,在對線上資料庫進行升級之前,一般都會在測試 ...
  • 本文介紹如何使用 SQL GROUP BY 子句分組數據,以便彙總表內容的子集。這涉及兩個新 SELECT 語句子句:GROUP BY 子句和 HAVING 子句。 一、數據分組 從 如何使用 SQL AVG、COUNT、MAX、MIN 和 SUM 彙總數據 中得知,使用 SQL 聚集函數可以彙總數 ...
  • 本文為大家展示如何用低代碼實現一個簡單的頁面跳轉功能,讓你一看就會,一做就對! ...
  • 5月18日晚19:00,Hello HarmonyOS進階系列應用篇第三課《游戲開發實踐》直播如約而至。 ...
  • 編者按:在 OpenHarmony 生態發展過程中,涌現了大批優秀的代碼貢獻者,本專題旨在表彰貢獻、分享經驗,文中內容來自嘉賓訪談,不代表 OpenHarmony 工作委員會觀點。 李俊剛 深圳開鴻數字產業發展有限公司 資深OS驅動開發工程師 開源之風盛行,有人站在門口躍躍欲試,有人已經進場大展身手 ...
  • Gradle 作為官方主推的構建系統,目前已經深度應用於 Android 的多個技術體系中,例如組件化開發、產物構建、單元測試等。可見,要成為 Android 高級工程師 Gradle 是必須掌握的知識點。在這篇文章里,我將帶你由淺入深建立 Gradle 的基本概念,涉及 Gradle 生命周期、P... ...
  • 華為運動健康服務(HUAWEI Health Kit)提供原子化數據開放,在獲取用戶對數據的授權後,應用可通過介面訪問運動健康數據,對用戶數據進行增、刪、改、查等操作,為用戶提供運動健康類數據服務。這篇文章中我們總結了開發者提出的授權相關的典型問題並給出了參考解決方法,希望為其他遇到類似問題的開發者 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...