一、vue2仿去哪儿网app —— 前期准备
Ⅰ项目结构
Ⅱ 项目收获
- 理解整个vue项目的流程,以及vue整个项目的各部分的划分。
- Vue Router 实现多页面的路由
- Vuex 多组件的数据共享
- Axios 进行 Ajax 数据的获取
- 移动端页面布局技巧
stylus
编写前端样式swiper
组件的使用- 公用组件的拆分
Ⅲ 适配移动端
1.meta标签相关设置
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
效果:页面比例始终是 1:1,用户无法通过手指操作缩放页面
2. 引入reset.css
目的:重置页面样式
因为在不同移动端、不同浏览器上页面的初始样式是不一样的,引入reset.css为了保证在每个浏览器上展示出的初始效果是一样的
3. 引入border.css
目的:解决移动端1像素边框问题
4. 项目中安装fastclick
npm install fastclick --save
目的:解决移动端300ms延迟问题
移动端300ms延迟原因
2007 年初。苹果公司在发布首款 iPhone 前夕,遇到一个问题:当时的网站都是为大屏幕设备所设计的。于是苹果的工程师们做了一些约定,应对 iPhone 这种小屏幕浏览桌面端站点的问题。
双击缩放(double tap to zoom)
,这也是会有上述 300 毫秒延迟的主要原因。双击缩放,即用手指在屏幕上快速点击两次,iOS 自带的 Safari 浏览器会将网页缩放至原始比例。
假定这么一个场景。用户在 iOS Safari 里边点击了一个链接。由于用户可以进行双击缩放或者单击跳转的操作,当用户一次点击屏幕之后,浏览器并不能立刻判断用户是确实要打开这个链接,还是想要进行双击操作。因此,iOS Safari 就等待 300 毫秒,以判断用户是否再次点击了屏幕。
鉴于iPhone的成功,其他移动浏览器都复制了 iPhone Safari 浏览器的多数约定,包括双击缩放,几乎现在所有的移动端浏览器都有这个功能。
Ⅳ 项目插件的引入
1. Ajax 获取 首页数据
vue推荐使用axios,实现跨平台的数据请求
安装 axios:
npm install axios --save
请求的模拟数据存放在src下的mock文件夹中
2.轮播图
安装 vue-awesome-swiper 插件
npm install vue-awesome-swiper@2.6.7 --save
3.Better-scroll
npm install better-scroll --save
Better-scroll,用来处理滚动列表
4.使用vuex实现数据共享
安装vuex
npm install vuex --save
项目中是为了实现城市选择列表页面和首页的数据传递