vue企业项目demo_vue-demo

本文详细介绍了如何使用Vue、Mint-UI、Vue-router和Vue-resource构建一个企业级项目。从制作首页App组件,包括Header和Tabber区域,到设置路由高亮、轮播图和表格内容,再到新闻资讯、图片分享和商品购买功能的实现。项目涵盖了Vue组件、路由切换动画、数据获取、页面布局、评论系统、图片懒加载、商品详情、购物车功能以及使用Vuex管理和本地存储。此外,还解决了Webpack打包后的异步路由问题。
摘要由CSDN通过智能技术生成

Vue实战项目

项目描述

使用 Vue+ Mint-UI + Vue-router + Vue-resource + webpack 构建一个Vue实战项目

项目实现

制作首页App组件

完成 Header 区域,使用的是 Mint-UI 中的Header组件

制作底部的Tabber 区域,使用的是 MUI 的Tabber.html

先把 扩展图标的 css 样式,拷贝到 项目中

拷贝 扩展字体库 ttf 文件到项目中

为 购物车小图标添加如下样式 'mui-icon mui-icon-extra mui-icon-extra-cart '

要在中间区域放置一个router-view 来展示路由匹配到的组件

改造 tabbar 为 router-link

设置路由高亮

路由切换

HomeContainer.vue

MemberContainer.vue

ShopcarContainer.vue

SearchContainer.vue

设置路由切换动画

制作轮播图

制作首页轮播图布局

加载首页轮播图数据

+ 获取数据,使用 vue-resource 的 this.$http.get

+ 将获取到的数据保存在 data 中

+ 使用 v-for 循环渲染每个 item 项

添加表格内容

使用MUI中的 grid-default

--

制作新闻资讯

改造新闻资讯路由链接

新闻资讯页面制作

绘制界面,使用 MUI 中的 media-list

使用 vue-resource 获取数据

渲染真实数据

制作新闻详情

把新闻列表中的每一项改造为 router-link,同时,在跳转的时候应该提供唯一的 id 标识符

创建新闻详情组件页面 NewsInfo.vue

在路由模块中,将新闻详情的路由地址和组件页面对应

实现新闻详情的页面布局和数据渲染

评论子组件

绘制评论子组件

加载评论内容

实现‘加载更多评论’功能

发表评论

把文本框做双向数据绑定

为发表按钮绑定一个事件

校验评论内容是否为空?如果为空,则提示用户

通过 vue-resource 发送一个请求,将评论内容提交给服务器

发表评论后,重新刷新列表,查看最新评论

+ 当评论成功后,在客户端手动拼接一个最新评论对象,然后调用unshift将其放入comments的首部,这样就能实现刷新评论列表

+ 如果调用getComments 方法重新刷新评论列表,可能只能得到最后一页的数据,前几页的评论数据获取不到

--

制作图片分享

改造图片分享路由链接

图片分享页面制作

制作顶部导航条

+ 使用MUI 中的 tab-top-webview-main.html

+ 导入 mui.min.js 并初始化 scroll

~~~

mui('.mui-scroll-wrapper').scroll({

deceleration: 0.0005 //flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006

});

~~~

+ 使用mui的mui.js出现问题,因此我们需要移除‘严格模式’,使用插件:babel-plugin-transform-remove-strict-mode

+ 滚动条的初始化,必须要等到DOM元素加载完毕,所以,将初始化 scroll的代码放在 mounted 声明周期函数中

+ 因为mui的js有问题,使用滑动条和tab会有冲突,因此要将tab的类名'mui-tab-item'修改

+ 获取所有分类并渲染分类列表

制作底部图片列表

+ 图片懒加载,使用 mint-ui 提供的 Lazy load组件

+ 美化图片列表样式

图片详情页面制作

路由改造,要将tag属性指定为li元素

获取数据并美化布局

图片缩略图制作

+ 使用vue-preview插件

+ 获取到图片数据后要循环每个图片数据,添加 w h msrc(新版vue-preview规定属性)

+ 注意:如果想更改缩略图样式,那么需要去掉scoped属性

--

制作商品购买

改造路由链接

实现商品列表两列布局

制作商品详情

页面布局使用MUI中的卡片样式 card

页面功能:

抽离轮播组件

实现购买数量的选择 -> 使用MUI中的numbox

实现图文介绍功能

添加商品评论

加入购物车功能

+ 加入购物车动画

+ 节流(防止点击次数过多)

使用vuex管理购物车商品数据

使用本地存储来方便初始时加载购物车中的数据

购物车

制作购物车页面

获取购物车商品列表并加载数据

使numbox中的数值与徽标中的数值保持一致

增加删除功能

动态计算商品数量及总价

实现返回按钮功能

关于打包

问题:使用webpack打包后会发现多了0-14.bundle.js文件

原因:产生这么多js文件的原因是因为路由引用方式的问题,由于使用的是 () => import 即异步路由(路由懒加载),所以每个组件会被单独进行打包。这样能确保你最主要的包比较小,其他不太重要或者需要时才加载的,则另行打包

解决方法:如果不想生成太多的js文件,则使用 import xxx from 'xxx/xxx.vue'的方式引用路由

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值