JerrybroDu / vue-mall

基于vue全家桶的(PC)移动端电商商城(高仿小米商城)
17 stars 8 forks source link

技术栈

vue2 + vue-router + vuex + axios + sass (vue-cli4搭建的)

启动

# npm install (安装依赖)
# npm run serve (本地运行)
# npm run build (打包)
账号:jerrybro
密码:jerrybro

vue-cli项目注意点

// post请求的传参直接写在第二个参数对象中(无需再写在params里) axios.get( 'url',{ 参数名:值 } ).then(function (response) {}).catch(function (error) {})


- 打开新窗口的方式:
        JS代码控制: window.open('url','_blank'),
        html标签控制: < a href='url' target="_blank" >< /a >

- CSS属性:
 // 该属性挺好用,设置border-box后,不用管padding对原来设置的width影响,padding值都算在width内了
 box-sizing: border-box;
- <img>标签的src可以存放.svg的矢量图
一个svg图片

# 项目目录
  * public: 一般放大图片,
  * src/assets: 放小图片,可以转成base64,不用请求图片资源
    * src/assets/scss/reset.scss :重置浏览器的样式,防止默认浏览器样式干扰
    * src/assets/scss/mixin.scss :一般放置css函数,即抽取出来复用高的css属性,如span设置图标、flex布局都可以抽离出来,使用函数替代
    * src/assets/scss/base.scss :抽取的一些公共样式,即多处相同类名设置相同的css属性,需要抽离出来,提高代码复用

  * src/components: 一般放页面组件,命名方式用大头驼峰命名:如 NavHeader.vue
  * src/views: 放页面(需要单独配置路由的页面),命名方式用小写:如 index.vue、 home.vue

  * src/router/index.js: 路由的配置
  * src/store/index.js: vuex状态管理
  * src/storage: 这里放置缓存sessionStorage、cookie、localStorage等存取以及删除等公共方法,便于操作缓存(虽然已经缓存提供了一些API,但自己封装的能根据项目而定)

  * env.js: 该配置文件是自己抽取出来的,根据CORS和JSONP跨域才做此设置,接口代理跨越则不需要这个
    - .env.prev: 是自定义vue.config.js --mode=prev(名称为prev自定义的),且env.js中也要对应prev  

# 项目简介
 * public文件夹: 是项目的根目录,即 '/imgs/logo.png'来引用public下的资源

* main.js:
    * 全局配置,这里配置router、store、Vue, 一些各个.vue页面通用的插件放入Vue.use(VueCookie)中
    * 使用图片懒加载插件,加载内容时,显示loading指向的.svg矢量图(可根据自己需要改变)
import VueLazyLoad from 'vue-lazyload'
Vue.use(VueLazyLoad, {
    loading: '/imgs/loading-svg/loading-bars.svg'
})
```