天天看點

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

點選上方藍字設為星标

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

下面開始今天的學習~

已經有一段時間沒有更新了,正好這段時間在做一個電商管理系統的項目,借此總結一下。該項目主要是一個電商的背景管理系統,可實作管理使用者賬号,即登入、退出、使用者管理、權限管理等,商品管理,即商品分類、分類參數、商品資訊,訂單資訊等以及資料統計。

前端項目是基于Vue的SPA項目,前端技術棧采用Vue+Vue-Router+Element-UI+Axios+Echarts,後端技術棧采用Node.js+Express+Jwt(模拟session)+Mysql+Sequelize組成。由于此項目主要練習相關前端技術棧,故後端采用已有模闆進行搭建。

安裝Vue腳手架

通過 vue ui 指令啟動可視化視窗對Vue腳手架進行配置(需事先安裝好Vue),指令鍵入成功後,會自動彈出配置頁面,選擇 手動配置 ,勾選 Babel (将進階JS文法轉換為低級文法)、 Router (路由)、 Linter (拼寫檢查)進行配置,選擇 标準配置 ,建立好項目後可能會需要一段時間的加載。

vue element 寫的登入頁面_Vue|電商背景管理系統(1)
vue element 寫的登入頁面_Vue|電商背景管理系統(1)
vue element 寫的登入頁面_Vue|電商背景管理系統(1)
vue element 寫的登入頁面_Vue|電商背景管理系統(1)

安裝依賴

點選右上角添加插件,搜尋vue-cli-plugin-elemen,點選插件圖示然後點選最下方安裝按鈕,安裝成功點選下方完成安裝。

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

預覽頁面

點選左側邊欄選擇任務->serve->運作,預編譯成功後點選啟動app,将自動跳轉至http://localhost:8080/#/,即搭建成功。

vue element 寫的登入頁面_Vue|電商背景管理系統(1)
vue element 寫的登入頁面_Vue|電商背景管理系統(1)
vue element 寫的登入頁面_Vue|電商背景管理系統(1)

項目結構

用vscode打開剛剛建立的Vue腳手架,項目結構如下:

vue element 寫的登入頁面_Vue|電商背景管理系統(1)
  • node_modules:用于存放用包管理工具下載下傳安裝了的包
  • public:用于存放靜态資源檔案(不會經過webpack的打包處理)
  • src:用于存放項目的源碼檔案
    • assets:用于存放靜态資源檔案(會經過webpack的打包處理)
    • components:用于存放vue元件
    • plugins:用于存放element.js
    • router:用于存放路由檔案
    • views:用于存放視圖檔案
    • APP.vue:項目入口檔案
    • main.js:項目的核心檔案
  • .editorconfig:代碼規範配置檔案
  • .gitignore:git忽略配置檔案
  • babel.config.js:babel配置檔案
  • package.json:項目配置檔案
  • package-lock.json:項目包管控檔案
  • README.md:說明檔案

删除多餘檔案

删除view檔案夾,即删除view内的所有檔案及view檔案夾。

删除router/index.js 内的views檔案夾内檔案的導入,以及routes内的相關代碼,留下以下代碼:

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

删除components内的HelloWorld.vue檔案,并重新建立名為Home.vue的檔案,配置如下:

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

删除APP.vue檔案中的多餘部分,配置如下:

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

預覽首頁,如下圖所示:

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

搭建登入頁面

在components檔案夾下建立登入元件,Login.vue,并快速生成template、script和style骨架。

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

配置路由,進入router檔案夾,導入Login元件,建立路由并重定向首頁為登入界面,進入首頁時會自動跳轉至登入頁面,配置如下:

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

安裝Less依賴,回到項目儀表盤首頁,點選依賴,選擇開發依賴,安裝less和less-loader依賴。

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

繪制登入界面(由于僅僅使用到了最基本的html+css 這裡就不詳細講解了),繪制完畢後,界面如下:

vue element 寫的登入頁面_Vue|電商背景管理系統(1)
vue element 寫的登入頁面_Vue|電商背景管理系統(1)
vue element 寫的登入頁面_Vue|電商背景管理系統(1)

實作登入功能

1 綁定賬号資訊

在script中建立表單資料綁定對象loginForm,并設定username和password,為了測試效果,這裡将其進行指派。

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

在template中将login_form表單進行資料綁定

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

重新整理目前頁面,發現登入視窗中自動填寫了賬号及密碼,說明資料綁定成功。

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

2 賬戶合法性驗證

為了減輕伺服器壓力,在發送登入請求前,将先對輸入的賬戶資訊合法性進行驗證。這裡我們使用Element-UI元件進行實作。

1.在data中建立表單驗證規則對象

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

2.表單綁定驗證規則

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

3.測試,當輸入非法賬戶時,進行提示

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

3 重置功能實作

當點選重置按鈕時,賬号和密碼輸入框的内容将會清空。給登入表單注冊引用資訊,添加重置按鈕點選事件,調用resetFields()清空表單内容。

vue element 寫的登入頁面_Vue|電商背景管理系統(1)
vue element 寫的登入頁面_Vue|電商背景管理系統(1)

4 實作登入功能

由于登入功能需要用到後端子產品,我們将後端子產品導入,并啟動伺服器。

安裝axios依賴

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

在main.js中導入axios子產品,并設定基準位址。

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

給登入按鈕添加點選事件,當使用者點選登入按鈕時,進行賬号合法性驗證,如果目前所輸入的賬号合法,則允許向伺服器發送登入請求。

伺服器根據請求資訊檢查目前賬号是否正确,并傳回響應資訊,用戶端通過傳回的響應資訊做出相應響應。

即若賬号密碼錯誤則提示登陸失敗,反之,登陸成功,将目前的token存儲至session并跳轉至背景首頁。

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

5 實作退出功能

當使用者登入後進入背景,點選退出按鈕即可實作退出功能。

即在Home.vue中添加一個退出按鈕,并為其添加點選事件,當使用者點選時,删除目前存儲在session中的token資訊,并且跳轉至登入頁面。

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

6 實作導航守衛功能

至此,登入功能基本實作,但存在一個bug,即在使用者未登入的情況下,在位址欄輸入http://localhost:8080/#/home位址時,也可以跳轉至背景。

為了解決此bug,我們在router裡挂載一個導航守衛路由,即在使用者每次跳轉前,驗證使用者所要跳轉的位址,若為login頁面則放行,若為其他頁面,則查詢目前session中是否有對應的token,若有則放行,反之,則強制跳轉至登陸頁面。

vue element 寫的登入頁面_Vue|電商背景管理系統(1)
vue element 寫的登入頁面_Vue|電商背景管理系統(1)

——————end——————

圖 片 / Cs Max

編 輯 / Liony

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

在看點這裡

vue element 寫的登入頁面_Vue|電商背景管理系統(1)

繼續閱讀