美文网首页
移动端总结(二)

移动端总结(二)

作者: Raral | 来源:发表于2021-01-07 10:50 被阅读0次

移动端优化

局部样式和全局样式

体验优化

  1. 页面载入进度条
//安装 
$ npm install --save nprogress 或者
$ yarn add nprogress

//用法
NProgress.start();
NProgress.done();

//router.js使用
//导入
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

router.beforeEach((to, from, next) => {
  NProgress.start()
  next()
})

router.afterEach(() => {
  NProgress.done()
})

注意可以更改颜色

#nprogress .bar {
    background: red !important; 
  }

nprogress配置

  1. 页面渲染数据前添加 加载中(loading)的样式/骨架屏(可以借助封装好的也可以自己写)

  2. 美化滚动条(即使隐藏不了,也要在不同平台保持美观)

::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  width: 6px;
  background: rgba(#101F1C, 0.1);
  -webkit-border-radius: 2em;
  -moz-border-radius: 2em;
  border-radius: 2em;
}

::-webkit-scrollbar-thumb {
  background-color: rgba(#101F1C, 0.5);
  background-clip: padding-box;
  min-height: 28px;
  -webkit-border-radius: 2em;
  -moz-border-radius: 2em;
  border-radius: 2em;
}

::-webkit-scrollbar-thumb:hover {
  background-color: rgba(#101F1C, 1);
}
  1. 移动端 100vh 问题
    在移动端使用 100vh 时,发现在 Chrome、Safari 浏览器中,因为浏览器栏和一些导航栏、链接栏导致不一样的呈现:
    你以为的 100vh === 视口高度
    实际上 100vh === 视口高度 + 浏览器工具栏(地址栏等等)的高度

解决方案

//安装 vh-check npm install vh-check \--save
import vhCheck from 'vh-check';
vhCheck('browser-address-bar');

//定义css 混合
@mixin vh($height: 100vh) {
  height: $height;
  height: calc(#{$height} - var(--browser-address-bar, 0px));
}
  1. axios封装
import axios from 'axios';
import get from 'lodash/get';
import storage from 'store';
// 创建 axios 实例
const request = axios.create({
 // API 请求的默认前缀
 baseURL: process.env.VUE_APP_BASE_URL,
 timeout: 10000, // 请求超时时间
});

// 异常拦截处理器
const errorHandler = (error) => {
 const status = get(error, 'response.status');
 switch (status) {
   /* eslint-disable no-param-reassign */
   case 400: error.message = '请求错误'; break;
   case 401: error.message = '未授权,请登录'; break;
   case 403: error.message = '拒绝访问'; break;
   case 404: error.message = `请求地址出错: ${error.response.config.url}`; break;
   case 408: error.message = '请求超时'; break;
   case 500: error.message = '服务器内部错误'; break;
   case 501: error.message = '服务未实现'; break;
   case 502: error.message = '网关错误'; break;
   case 503: error.message = '服务不可用'; break;
   case 504: error.message = '网关超时'; break;
   case 505: error.message = 'HTTP版本不受支持'; break;
   default: break;
   /* eslint-disabled */
 }
 return Promise.reject(error);
};

// request interceptor
request.interceptors.request.use((config) => {
 // 如果 token 存在
 // 让每个请求携带自定义 token 请根据实际情况自行修改
 // eslint-disable-next-line no-param-reassign
 config.headers.Authorization = `bearer ${storage.get('ACCESS_TOKEN')}`;
 return config;
}, errorHandler);

// response interceptor
request.interceptors.response.use((response) => {
 const dataAxios = response.data;
 // 这个状态码是和后端约定的
 const { code } = dataAxios;
 // 根据 code 进行判断
 if (code === undefined) {
   // 如果没有 code 代表这不是项目后端开发的接口
   return dataAxios;
 // eslint-disable-next-line no-else-return
 } else {
   // 有 code 代表这是一个后端接口 可以进行进一步的判断
   switch (code) {
     case 200:
       // [ 示例 ] code === 200 代表没有错误
       return dataAxios.data;
     case 'xxx':
       // [ 示例 ] 其它和后台约定的 code
       return 'xxx';
     default:
       // 不是正确的 code
       return '不是正确的code';
   }
 }
}, errorHandler);

export default request;

注意
通过 VUE_APP_BASE_URL 区分线上与开发环境的 API 地址。
code 起到一个比较关键的作用,例如 token 过期时的验证。
使用了一个叫 sotre 的包作为本地储存的工具用来存储 token。

相关文章

  • 移动端总结(二)

    移动端优化 局部样式和全局样式 体验优化 页面载入进度条 注意可以更改颜色 nprogress配置[%5Bhttp...

  • m.uyunbaby.com SEO优化点

    pc端: 移动端: **总结:(1)对照PC端信息,移动端也做一样的**

  • 前端移动端适配总结

    前端移动端适配总结

  • 移动端总结

    1、安卓浏览器看背景图片,有些设备会模糊 用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢?经过研...

  • 移动端总结

    移动端的适配 一、Viewport视口 用法: 属性:width: 控制Viewport的大小,device-wi...

  • 移动端总结:

    更新于 2016/11/3 meta标签 使用click会出现绑定点击区域闪一下的情况 当前点击元素样式 消除tr...

  • 移动端总结

    1、常用的meta标签 2、IOS的H5页面滚动不流畅解决方案在滚动层的外面的class添...

  • 移动端总结

    移动端,UI还原很严格,1px都不能差。安装了Sketch,方便定位到元素。审批主要是详情页展示: 遇到的问题:之...

  • 移动端总结

    移动端技巧总结 对移动端开发和适配的技巧总结,主要从适配和注意事项两方面进行总结 1.媒介查询 2. 手机端加一个...

  • 遇到的坑(转)

    下面,就总结一下移动端遇见的坑。 1.input placeholder问题 在chrome 模拟移动端调试时[...

网友评论

      本文标题:移动端总结(二)

      本文链接:https://www.haomeiwen.com/subject/iptzoktx.html