## shop-vue移动端商城APP
### 项目概要
* 本项目用到的技术栈: vue-cli + vue-router + vuex + axios + vue-axios + vant( UI )
* 如何在本地运行本项目
```js
git clone git@github.com:qiuChengleiy/shop-vue.git
cd shop-vue
npm i 或 cnpm i //安装项目依赖 建议使用淘宝镜像源 cnpm 安装 具体参考官网cnpm.taobao.org
npm run dev //运行项目服务 在浏览器:localhost:8080/ 查看
```
* 如果运行不成功请查看是否缺少配置文件 比如.babelrc或者尝试用vue-cli初始化一个vue项目再将本项目移植进去
* [项目地址](https://github.com/qiuChengleiy/shop-vue)
* [效果查看 项目截图部分](./desc.md)
* [真机体验 APK(限安卓)](https://bdpkg.aliyun.dcloud.net.cn/20180623/4f272620-76e4-11e8-ac02-2ddfe5afa4dc/Pandora.apk?OSSAccessKeyId=Zo5iOEuapwrloQIL&Expires=1529758626&Signature=1TZwtDFnd8e%2B9O1xMvsjlggf5ew%3D)
* 真机体验可能会带来不流畅卡顿等现象 建议使用Chrome浏览器体验
* 本项目用到的素材图片均来自唯品会网,仅学习使用,如果有问题请联系我删除 ^_^
### 项目文档说明
#### 项目结构
``` sh
├── build/ # 项目打包配置文件 vue-cli 初始化的文件
├── node_modules/ #模块文件
├── config/ #配置文件 vue-cli 初始化的配置
├── dist/ #打包后的文件存放目录
├── src/ #项目入口目录
├── assets/ #前端资源目录
├── css/ # 样式表目录/less文件存放目录
├── components/ # vue组件目录/.vue文件存放目录
├── about.vue # 项目介绍组件
├── active.vue # 活动版块组件
├── buyInfo.vue # 购买信息组件
├── community.vue # 社区组件
├── goodsInfo.vue # 商品信息组件
├── home.vue # 首页组件
├── login.vue # 登录注册组件
├── me.vue # 用户组件
├── news.vue # 社区文章信息组件
├── orderList.vue # 订单列表组件
├── orderPay.vue # 订单支付组件
├── search.vue # 搜索版块组件
├── shoppingCart.vue # 购物车组件
├── swiper.vue # 轮播公用组件
├── router/ # vue路由管理目录
├── index.js # 路由主文件
├── store/ # vuex状态管理目录
├── Core_store/ # store对象目录
├── active.js # 活动页的状态管理
├── community.js # 社区的状态管理
├── home.js # 主页状态管理
├── index.js # 状态管理入口主文件
├── App.vue # 项目根组件
├── main.js # 项目入口文件
├── static/ #静态文件存放目录
├── images/ # 图片资源
├── data.json # mock数据
├── test/ #测试目录
├── package.json #包文件信息
├── .babelrc
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .postcsssrc.js
├── index.html
├── README.md
├── vue-shop.apk
```
#### 功能简单介绍
##### main.js 项目入口文件
* 在主文件中,把所需要的模块加进来,vant的框架因为第一次用,所以也不知道具体加啥组件,所以索性都编译进去了~ 这也导致了编译的速度有点稍慢
* 状态方面也对它做了简单的封装 /store/
```js
//导入所需模块
import Vue from 'vue'
import App from './App'
import router from './router'
Vue.config.productionTip = false
//axios
import axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use(VueAxios, axios)
//状态管理
import vuex from 'vuex'
Vue.use(vuex);
//ui 框架
import Vant from 'vant';
import 'vant/lib/vant-css/index.css';
Vue.use(Vant);
//懒加载
import { Lazyload } from 'vant';
Vue.use(Lazyload);
//瀑布流
import { Waterfall } from 'vant';
Vue.use(Waterfall);
import store from './store/index'
/* VUE实例 */
new Vue({
el: '#app',
router,
store,
components: { App },
template: '<App/>'
})
```
#### 路由管理
* 在这里把需要跳转的组件都加进来,配合vue-router使用,因为业务逻辑不是很复杂,所以这里没有用子路由跳转,都是简单的路由处理
* 在js中控制路由跳转:
```js
this.$router.push(url);
```
```js
import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/home'
import Search from '@/components/search'
import GoodsInfo from '@/components/goodsInfo'
import Buy from '@/components/buyInfo'
import Pay from '@/components/orderPay'
import Community from '@/components/community'
import ShopingCart from '@/components/shoppingCart'
import Me from '@/components/me'
import Login from '@/components/login'
import About from '@/components/about'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'Home',
component: Home,
},
{
path: '/search',
name: 'search',
component: Search,
},
{
path:'/goods/:id',
name:'goodsInfo',
component:GoodsInfo,
},
{
path:'/goods/:id/buy',
name:'buyInfo',
component:Buy,
},
{
path:'/goods/:id/buy/pay',
name:'pay',
component:Pay,
},
{
path:'/community',
name:'community',
component:Community,
},
{
path:'/shoppingCart',
name:'shoppingCart',
component:ShopingCart,
},
{
path:'/me',
name:'Me',
component:Me,
},
{
path:'/login',
name:'login',
component:Login,
},
{
path:'/register',
name:'register',
component:Login,
},
{
path:'/about',
name:'aboutMe',
component:About,
},
{
path:'*',
redirect:'/'
}
]
})
```
#### 状态管理
* 对口处进行了简单的封装 方便后续管理
* 其他部分文件导出均是各模块所需的对象
* 在组件中引入即可
```js
import { mapState,mapActions,mapGetters } from 'vuex';
computed: {
...mapState({
title: state => state.home.tab.title,
icon: state => state.home.badge.icon,
bageTitle: state => state.home.badge.title,
actives: state => state.active.home.title,
src : state => state.home.lunbo.src,
activeTitle: state => state.active.home.activeTitle,
days: state => state.active.home.days,
broadcast: state => state.home.broadcast,
shop_info: state => state.home.shop_info,
my_info: state => state.home.my_info,
show: state => state.home.show,
}),
...mapGetters(['bc_notshow','search_show']),
},
methods: {
...mapActions([
'searchA'
]),
```
```js
//index.js
import Vue from 'vue'
import vuex from 'vuex'
Vue.use(vuex);
//引入store对象
import home from './Core_store/home';
import active from './Core_store/active';
import community from './Core_store/community';
export default new vuex.Store({
modules: {
home: home,
active:active,
community:community,
}
})
// home.js
export default {
state:{
tab:{
title:['','今日推荐','时尚','美妆','家电','家居','国际','生活'],
},
badge:{
icon:['icon_1','icon_2','icon_8','icon_4','icon_5','icon_6','icon_7','icon_10'],
title:['鞋包馆','运动馆','母婴馆','超市','女装馆','美妆馆','男装馆','更多'],
},
imageList:[],
broadcast:[],
bc:true,
show:true,
sshow:false,
shop_info:4,
my_info:2,
buyInfo:{
img:[],
},
orderShow:false,
numO:null,
},
mutations: {
search_(state) {
state.show = false;
},
buySearch(state,img) {
state
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
这里为你收集整理了关于毕业设计、课程设计可参考借鉴的资料一份,质量非常高,如果你投入时间去研究几天相信肯定对你有很大的帮助。到时候你会回来感谢我的。 本资源是经过本地编译测试、可打开、可运行的项目、文件或源码,可以用于毕业设计、课程设计的应用、参考和学习需求,请放心下载。 祝愿你在这个毕业设计项目中取得巨大进步,顺利毕业! 但还需强调一下,这些项目源码仅供学习和研究之用。在使用这些资源时,请务必遵守学术诚信原则和相关法律法规,不得将其用于任何商业目的或侵犯他人权益的行为。对于任何因使用本资源而导致的问题,包括但不限于数据丢失、系统崩溃或安全漏洞,风险自担哦! 如有侵权,请联系博主删除。
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计-vuecli vuerouter vuex axios vueaxios vant UI .zip (104个子文件)
vue-shop.apk 5.73MB
.babelrc 402B
.editorconfig 147B
.eslintignore 51B
.eslintrc 58B
.gitignore 291B
.gitkeep 0B
index.html 365B
4.jpg 97KB
4-2.jpg 95KB
4-1.jpg 58KB
5-1.jpg 46KB
5-2.jpg 46KB
5-3.jpg 45KB
5-0.jpg 44KB
err.jpg 16KB
webpack.prod.conf.js 5KB
webpack.dev.conf.js 3KB
utils.js 3KB
webpack.base.conf.js 2KB
index.js 2KB
home.js 2KB
runner.js 2KB
index.js 1KB
check-versions.js 1KB
build.js 1KB
nightwatch.conf.js 1KB
.eslintrc.js 791B
elementCount.js 765B
jest.conf.js 725B
main.js 644B
test.js 561B
vue-loader.conf.js 553B
HelloWorld.spec.js 354B
index.js 339B
community.js 300B
.postcssrc.js 246B
active.js 227B
dev.env.js 156B
test.env.js 149B
prod.env.js 61B
setup.js 56B
data.json 21KB
package.json 3KB
home.less 6KB
buyInfo.less 2KB
goods.less 2KB
search.less 1KB
about.less 1KB
login.less 1013B
README.md 32KB
desc.md 870B
login-bg.png 587KB
6.png 384KB
2.png 379KB
3.png 349KB
1.png 315KB
5.png 190KB
9.png 143KB
12.png 94KB
17.png 87KB
16.png 85KB
10.png 84KB
13.png 82KB
11.png 73KB
14.png 63KB
21.png 53KB
18.png 53KB
27.png 53KB
19.png 51KB
15.png 51KB
23.png 48KB
20.png 41KB
22.png 39KB
welcome.png 34KB
26.png 30KB
7.png 28KB
8.png 22KB
logo.png 7KB
icon_4.png 6KB
icon_5.png 6KB
icon_8.png 6KB
icon_1.png 5KB
icon_2.png 5KB
icon_6.png 5KB
icon_3.png 5KB
icon_9.png 5KB
icon_7.png 4KB
icon_10.png 2KB
me.vue 13KB
goodsInfo.vue 12KB
home.vue 7KB
orderList.vue 6KB
shoppingCart.vue 6KB
news.vue 6KB
community.vue 6KB
active.vue 5KB
buyInfo.vue 4KB
search.vue 4KB
login.vue 4KB
共 104 条
- 1
- 2
资源评论
高校毕业设计
- 粉丝: 184
- 资源: 385
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功