# vue-shop
**Repository Path**: nbaok/vue-study
## Basic Information
- **Project Name**: vue-shop
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-10-29
- **Last Updated**: 2021-11-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# gshop---前后端分离SPA项目学习
- 前端: Vue技术栈 + Mint-UI + ES6 + Webpack
- 后端: express + mongoDb + mongoose
- 模块化、 组件化、 工程化
前后端分离项目,需要进入各端分别安装依赖
## 1. 开发资源准备
- 使用[阿里巴巴矢量库]( http://www.iconfont.cn/)
- 将想要的图标添加入库(购物车)
- 将购物车中的图标添加到项目中
- 生成项目图标的[Font Class地址](//at.alicdn.com/t/font_1484442_lm2gthi6959.css)
## 2. Css Reset、Fastclick与Stylus
### 2.1 修改客户端自适应
> 在项目html模板头部修改
```html
```
### 2.2 Fastclick
#### 解决方案一
> 在项目html模板头部引入
```js
```
#### 解决方案二
> 当用户一次点击屏幕之后,浏览器并不能立刻判断用户是要进行双击缩放,还是想要进行单击操作。因此,iOS Safari 就等待 300 毫秒,以判断用户是否再次点击了屏幕。 于是,300 毫秒延迟就这么诞生了。
- 安装fastclick库 解决点击响应延时 0.3s 问题
```bash
npm install fastclick --save
```
- 在main.js中引入,并绑定到body
```js
import FastClick from 'fastclick'
FastClick.attach(document.body);
```
### 2.3 Stylus
- 安装stylus依赖包
```bash
npm install stylus stylus-loader --save-dev
```
## 3. 配置代理
### 3.1 修改vue.config.js文件
```js
...
devServer: {
proxy: {
"/api": { // 匹配所有以'/api'开头的请求路径
target: "http://localhost:4000", // 目标代理接口地址
// secure: false,
changeOrigin: true, // 开启代理,在本地创建一个虚拟服务端
// ws: true, // 是否启用websockets
pathRewrite: { // 重写路径:去掉路径开头的'/api'
"^/api": ""
}
}
}
}
...
```
### 3.2 修改api/index.js文件
```js
const BASE_URL = "/api";
// 所有请求路径以BASE_URL开头,例如:
export const reqAddress = geohash => ajax(`${BASE_URL}/position/${geohash}`);
```