- 接口调用传参
- query :查询字符串 users?id=123
- body:请求体,除了get请求,其他方式需要用请求体传递参数
- 路径参数:Restful风格,直接通过路径传递参数 users/123/456
- 路由参数传递
- query users?id=123
- Restful users/123 (this.$route.params.id)
- props
- props值 true
- props值 对象
- props值 函数
axios({
method: 'get',
url: '',
data: body
params: query
})
# 项目初始化
首先,黑马头条移动端是一个IT资讯移动web应用,有着和今日头条一样的资讯浏览体验。
主要功能:资讯列表、标签页切换,文章举报,频道管理、离线频道,文章详情、阅读记忆,关注功能、点赞功能、评论功能、回复评论、搜索功能、登录功能、个人中心、编辑资料、小智同学。
# 项目业务分析
- 项目业务功能分析
- 项目技术栈
- vue 核心vue
- vue-router 路由插件
- vuex 状态管理插件
- axios 请求插件
- json-bigint 最大安全数值处理
- vant 移动组件库(有赞)
- amfe-flexible rem适配
- 开发依赖
- babel ES转换器
- less css预处理器
- postcss css后处理器
- vue-cli vue项目脚手架
# 项目初始化
目标:基于Vue脚手架初始化项目
vue create hm-toutiao-mobile-123
- 初始化时选择router/vuex/postcss/less/eslint
- git init
- git add .
- git commit -m '初始化版本'
- git remote add origin 仓库地址
- git push -u origin master
# 调整项目目录结构
目标:根据功能模块调整项目的目录结构
├─api #接口函数(封装接口调用相关模块)
├─assets #静态资源(静态资源)
├─components #公用组件(被重复利用的组件)
├─styles #less代码(公共样式)
├─utils #工具模块(封装一些通用的js模块)
└─views #路由页面
├─home #首页模块
├─video #视频模块
├─question #问答模块
├─user #用户模块
└─Layout.vue #公用布局
├─App.vue #根组件
├─router #路由文件
|-main.js #项目的入口文件
└─store #状态文件
# 项目代码git管理
目标:基于git管理项目代码
https://gitee.com/byte1031/hm-toutiao-mobile-119.git
创建远程仓库
- 图形界面创建
提交代码
git init
git add .
git commit -m '初始化版本'
推送到远程仓库
- git remote add origin 仓库地址
- git push -u origin master
如果希望提交空目录,需要在目录中创建一个.gitkeep文件,如果后续在该目录写代码了,那么.gitkeep文件可以删除。
# Vant基本使用
目标:属性Vant组件库的基本使用
- 安装依赖包
npm i vant
- 导入包和样式
import Vue from 'vue'
import Vant from 'vant'
import 'vant/lib/index.css'
Vue.use(Vant)
- 使用组件
<van-button type="primary">主要按钮</van-button>
以上做法是完整导入,在项目开发阶段使用,配置方便节省时间,将来上线的时候可以使用按需导入。
# 屏幕适配配置
- 百分比(自适应宽度,不处理高度)
- 自适应(自适应宽度,不处理高度)
- 响应式(多端适配:PC端、移动端、IPAD端。。。。)
- Rem适配:针对移动适配(页面在不同的尺寸的手机上等比缩放-包括宽度和高度)
- 设置html元素的字体大写 font-size = 100px (1rem就是font-size的大小)
- 屏幕尺寸 375px === 3.75rem
- 屏幕尺寸 414px === 4.14rem
- 如果规定屏幕整个宽度是 100rem
- 375/10 = 37.5px
- 414/10 = 41.4px
Vant 中的样式默认使用
px作为单位,如果需要使用rem单位,推荐使用以下两个工具postcss-pxtorem (opens new window) 是一款 postcss 插件,用于将px单位转化为 rem
lib-flexible (opens new window) 用于动态设置 rem 基准值
- 安装依赖包
- postcss-pxtorem
- lib-flexable
npm install postcss-pxtorem@5.1.1 -D
npm i amfe-flexible -S
- 配置postcss.config.js
- rootValue 表示以该值作为rem的基准值(vant最佳显示状态)
- propList那些css属性的像素值转换为rem单位
module.exports = {
plugins: {
// 控制样式属性前面自动添加前缀
autoprefixer: {},
'postcss-pxtorem': {
// html的font-size规定为37.5px
// 为什么是37.5?因为iPhone6的尺寸是375px
// 现在的主流设计稿是那个手机的尺寸?iphone6
rootValue: 37.5,
// 控制那些样式的属性需要转换
propList: ['*'],
},
},
}
- 导入
import 'amfe-flexible'
注意:
rootValue 是转换px的基准值,参考设备iPhone6,设备宽度375px。
flexible 在iPhone6设备设置的 html--->font-size 也为37.5px 。
但是 设计稿 尺寸750px 大小,所以在设计稿量取的尺寸使用时候需要 除以2 。
400 X 200 --> 200 X 100