# mobile-shop
**Repository Path**: wangyfax/master
## Basic Information
- **Project Name**: mobile-shop
- **Description**: 移动端vue项目 后续需求待更新
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2020-02-19
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 移动端vue项目
## 实用技术vue、mui、mint-ui、bootstrap、es6
## 使用webpack node 等前端构建工具
## 主流开源协议之间有何异同? https://www.zhihu.com/question/19568896
## 将修改的代码上传到代码库(码云)
### 1、git add .
### 2、git commit -m '提交信息'
### 3、git push -u origin master
## 开发过程:
1、制作`首页`APP组件
------
> ### 1.1、完成Header 区域,使用的是Mint-UI中的Header组件
> ### 1.2、制作底部的Tabbar 区域,使用的是MUI 的 Tabbar.html
* > 1.2.1、制作购物车小图标的时候,首先要把扩展图标的CSS样式拷贝到项目中
* > 1.2.2、拷贝扩展字体库 ttf 文件到项目中
* > 1.2.3、为购物车小图标添加如下样式"mui-icon-extra mui-icon-extra-cart"
> ### 1.3、要在中间区域放置一个 router-view来展示路由匹配的组件
2、改造tabbar为router-link
------
3、设置路由高亮
------
4、点击tabbar中的路由链接,展示对应的路由组件
------
5、制作首页轮播图布局
------
6、加载首页轮播数据
------
> ### 6.1、获取数据,如果获取数据?使用vue-resource (cnpm i vue-resource -S)
> ### 6.2、使用vue-resource的this.$http.get获取数据
> ### 6.3、获取到的数据,要保存在data身上
> ### 6.4、使用v-for 循环渲染每个item项上
7、改造九宫格区域的样式
------
8、改造`新闻资讯`路由链接
------
> ### 8.1、绘制界面,使用MUI中的meadia-list.html
> ### 8.2、使用vue-resource获取数据
> ### 8.3、渲染真实数据
9、实现新闻资讯列表 点击跳转到新闻详情
------
> ### 9.1、把列表中的每一项改造为诶router-link,同时在跳转的时候应该提供一个唯一的ID标识符
> ### 9.2、创建新闻详情的组件页面 NewsInfo.vue
> ### 9.3、在路由模块中,将新闻详情的路由地址和组件页面对应起来
10、实现新闻详情的页面布局和数据渲染(注意:返回的图片地址已经失效)
------
11、单独封装一个common.vue评论子组件
------
> ### 11.1、西安创建一个单独的common.vue组件模板
> ### 11.2、在需要使用common.vue组件的页面中,手动导入common组件
import common from './common.vue'
> ### 11.3、在父组件中使用 components属性将当前导入的common组件,注册为自己的子组件
> ### 11.4、将注册子组件时的注册名称,以标签的形式在页面中引用即可
12、获取所有的评论数据,渲染到页面中
------
13、实现点击“加载更多”,显示更多评论的功能
------
> ### 13.1、为“加载更多”按钮绑定点击事件,在事件中,请求下一页
> ### 13.2、点击加载更多,让pageIndex++,然后重新调用getComments()方法重新获取最新一页的数据
> ### 13.3、为了方式新数据覆盖老数据,在加载更多的时候,每当获取到新数据的时候,老数据应该调用数组的concat方法,
拼接新数组this.coments = this.coments.concat(res.body.message);
14、发表评论
------
> ### 14.1、把文本框做双向绑定
> ### 14.2、为发表按钮绑定一个事件
> ### 14.3、校验评论内容是否为空,如果为空,则Toast提示用户”评论内容不能为空“
> ### 14.4、通过vue-resource发送一个请求,把评论内容提交给服务器
> ### 14.5、当评论OK后,重新刷新列表,查看最新的评论
* > 14.5.1、如果调用getComments方法重新舒心评论别表的话,只能得到最后一页的评论,前几页的内容无法获取
* > 14.5.2、所有当评论成功之后,在客户端,手动拼接一个最新的评论对象,然后调用数组的unshift方法,把最新的评论追加到data中comments的起始
位置,这样就可以实现列表刷新的需求了
15、改造`图片分享`点击 路由的链接并显示对应的组件页面
------
16、绘制图片列表组件页面结构,并优化样式
------
> ### 16.1、制作顶部的滑动条
> ### 16.2、制作底部图片列表
17、制作顶部滑动条出现的问题:
------
> ### 17.1、需要借助于MUI中的tab-top-webview-main.html
> ### 17.2、需要把slider区域的mui-fullscreen类去掉
> ### 17.3、滑动条无法正常触发华东,通过检查官方文档需要初始化JS组件
* > 17.3.1、导入mui.js
* > 17.3.2、调用官方提供的方式去初始化
```
mui('.mui-scroll-wrapper').scroll({
deceleration: 0.0005 //flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006
});
```
* > 17.3.3、在初始化滑动条的时候,导入了mui.js,但是控制台报错了
```
bundle.js:49401 Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed
on strict mode functions or the arguments objects for calls to them
```
* > 17.3.4、经过分析,可能是mui.js中用到了'caller','callee' and 'arguments'相关的东西,但是wabpack打包好的bundle.
js中默认启用的是严格模式,所以这两者冲突了
* > 17.3.5、安装 cnpm install babel-plugin-transform-remove-strict-mode -D 插件来解决这种问题 移除严格模式
> ### 17.5、从首页进入图片分享页面时,顶部华东条无法正常工作,经过分析发现,如果要初始化 滑动条,则必须要等DOM元素加载\
完毕,所以我们把初始化滑动条的代码写到mounted生命周期钩子函数中。
> ### 17.6、当滑动条调试成功之后,发现tabbar无法正常工作,此时,我们发现是mui中'mui-tab-item'这个类名和其他类名冲突\
了,所以我们需要修改一下名字,同时重新把样式添加一下即可。
> ### 17.7、获取所有分类,渲染分类列表
18、制作图片列表
------
> ### 18.1、图片列表需要使用懒加载技术,可以使用mint-ui提供的Lazyload 组件 import { Lazyload } from 'mint-ui';
> ### 18.2、根据'lazy-load'的使用文档,使用
> ### 18.3、渲染图片列表数据
19、实现图片的懒加载
------
20、实现点击图片跳转到图片详情页面
------
> ### 20.1、在改造li成router-link的时候,需要使用tag属性指定要渲染为哪种元素
21、实现详情页面的布局和美化,同时获取数据渲染页面
------
22、实现`图片详情`中缩略图的功能
------
> ### 22.1、使用插件 vue-preview 这个缩略图插件
> ### 22.2、该插件已经更新,[请查看官方vue-preview用法](https://github.com/LS1231/vue-preview)
* > 注意:必须使用vue-preview标签
* > 注意:每个图片数据对象中,必须有w、h、msrc、src属性
* > 注意:同时必须设置一个全局的样式
```
//这是html