項(xiàng)目架構(gòu)

created by 2006 at 2020-9-14

環(huán)境

windows 64bit
node.js v10+
調(diào)試工具:谷歌瀏覽器+devTools

技術(shù)棧:vue + vue-router + vuex + sass + vant + axios

項(xiàng)目架構(gòu)

1、項(xiàng)目配置

vue.config.js
把端口號(hào)改成 8001

package.json
項(xiàng)目運(yùn)行:npm start
項(xiàng)目打包:npm run build

2、路由集成

cnpm install vue-router -S
創(chuàng)建 /src/router.js 并編寫路由規(guī)則
在main.js掛載
使用 <router-view></router-view>

3、使用sass

cnpm install sass-loader -D
cnpm install node-sass -D
組件中的style標(biāo)簽,使用lang='scss'指定CSS語(yǔ)言類型

4、安裝vant組件庫(kù)

Vant官方文檔:https://vant-contrib.gitee.io/vant/#/zh-CN/

cnpm install vant -S
cnpm install babel-plugin-import -D

Babel是運(yùn)行在Node.js環(huán)境中的JS編譯器。
它的作用是把ES6代碼轉(zhuǎn)化成瀏覽器兼容性更好的ES5代碼。

# babel.config.js
module.exports = {
  plugins: [
    ['import', {
      libraryName: 'vant',
      libraryDirectory: 'es',
      style: true
    }, 'vant']
  ]
}
# 配置完成后,重啟項(xiàng)目即可

在組件中如何使用vant組件呢?

# 導(dǎo)入所需要的組件
import { Button } from 'vant'
# 把Vant組件變成局部組件
components: {
  [Button.name]: Button
}
# 在視圖中使用vant組件
<van-button type='danger'>按鈕</van-button>

rem布局

dpr = 屏幕像素(px) / 物理尺寸
dpr = 2 二倍屏
dpr = 3 三倍屏

移動(dòng)端布局:vw/vh,flexible,rem(最常用)

rem:相對(duì)html標(biāo)簽的根字體大小,倍數(shù)關(guān)系
em:相對(duì)于父級(jí)字體的大小,倍數(shù)關(guān)系
px:絕對(duì)單位

目標(biāo):10rem等于滿屏
做法:把當(dāng)前頁(yè)面的根字體的大小等于當(dāng)前屏幕寬度的1/10
第一步獲取html標(biāo)簽dom對(duì)象 oHTML
第二步通過(guò)js獲取當(dāng)前屏幕的寬度 w(單位是px)
第三步,oHTML.fontSize = w*0.1 + 'px'
原理:等比縮放

建議在vscode安裝一個(gè)cssrem的插件,它的作用是自動(dòng)幫我把px單位轉(zhuǎn)化成rem單位。
它需要進(jìn)行基準(zhǔn)單位設(shè)置,設(shè)置成75(1rem=75px)

接口文檔

baseURL = 'http://10.36.138.122:9999'

注冊(cè):/jd/regist
入?yún)? username, password, password2
方法: POST

登錄:/jd/login
入?yún)? username, password
方法: POST

獲取首頁(yè)推薦商品:/jd/getHotGoodList
方法:GET
入?yún)ⅲ?br> hot: Boolean 非必填, 默認(rèn)是 false, 傳true時(shí)返回?zé)徜N推薦的產(chǎn)品,如果不傳或傳false就返回所有商品
page: Number 非必填,默認(rèn)是 1, 用于實(shí)現(xiàn)分頁(yè)功能
size: Number 非必填,默認(rèn)是 10

獲取全部品類:/jd/getAllCates
方法:GET
入?yún)ⅲ簾o(wú)

基于品類進(jìn)行篩選:/jd/getCateGoodList
方法:GET
入?yún)ⅲ?br> cate: String 品類的英文字段

獲取商品詳情:/jd/getGoodDetail
方法:GET
入?yún)ⅲ?br> good_id: String 商品id

添加到購(gòu)物車:/jd/addToCart
方法:POST
入?yún)ⅲ?br> num: Number 選填,購(gòu)買數(shù)量
good_id: String 商品id

獲取購(gòu)物車列表:/jd/getCartList
方法:GET
入?yún)ⅲ簾o(wú)

更改購(gòu)物車中的商品數(shù)量:/jd/updateCartNum
方法:POST
入?yún)ⅲ?br> num: Number 新的數(shù)量
id: String 購(gòu)物車id

刪除購(gòu)物車中的商品:/jd/deleteToCart
方法:GET
入?yún)ⅲ?br> id: String 購(gòu)物車id

提交購(gòu)物:/jd/submitToCart
方法:POST
入?yún)ⅲ?br> goods: String 購(gòu)物車id字符串,多個(gè)商品id要用英式;進(jìn)行連接。

添加商品:/jd/addGood
方法:POST
入?yún)ⅲ?br> img: String, // 圖片
name: String, // 商品名稱
desc: String, // 商品描述
price: Number, // 價(jià)格
cate: String, // 品類
hot: Boolean, // 是否推薦

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容