详解基于vue-cli配置移动端自适应


Posted in Javascript onJanuary 13, 2018

之前写过一篇关于移动端屏幕适配:移动端屏幕适配的解决,今天来聊一聊基于vue-cli配置的移动端屏幕适配问题。

配方还是一样:手淘的 lib-flexible + rem

配置 flexible

安装 lib-flexible

在命令行中运行如下安装:

npm i lib-flexible --save

引入 lib-flexible

在项目入口文件 main.js 里 引入 lib-flexible

// main.js
import 'lib-flexible'

添加 meta 标签

在项目根目录的 index.html 中添加如下 meta

<meta name="viewport" content="width=device-width, initial-scale=1.0">

px 转 rem

实际开发中,我们通过设计稿得到的值单位是 px,所以要将 px 转换成 rem 再写进样式中。

将 px 转换成 rem 我们将使用 px2rem 这个工具,它有 webpack 的 loader:px2rem-loader

安装 px2rem-loader

在命令行中运行如下安装:

npm i px2rem-loade --save-dev

配置 px2rem-loade

在 vue-cli 生成的 webpack 配置中,vue-loader 的 options 和其他样式文件 loader 最终是都是由 build/utils.js 里的一个方法生成的。

我们只需在 cssLoader 后再加上一个 px2remLoader 即可,px2rem-loader 的 remUnit 选项意思是 1rem=多少像素,结合 lib-flexible 的方案,我们将 px2remLoader 的 options.remUnit 设置成设计稿宽度的 1/10,这里我们假设设计稿宽为 750px。

// utils.js
var cssLoader = {
 loader: 'css-loader',
 options: {
  minimize: process.env.NODE_ENV === 'production',
  sourceMap: options.sourceMap
 }
}
var px2remLoader = {
 loader: 'px2rem-loader',
 options: {
  remUnit: 75
 }
}
// ...

并放进 loaders 数组中

// utils.js
function generateLoaders(loader, loaderOptions) {
 var loaders = [cssLoader, px2remLoader]
 // ...

修改配置后需要重启,然后我们在组件中写单位直接写 px,设计稿量多少就可以写多少了,舒服多了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
斜45度寻路实现函数
Aug 20 Javascript
javascript下判断一个对象是否具有指定名称的属性的的代码
Jan 11 Javascript
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
Mar 07 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
Feb 23 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
Nov 14 Javascript
ExtJs动态生成treepanel的Json格式
Jul 19 Javascript
js随机生成26个大小写字母
Feb 12 Javascript
jQuery联动日历的实例解析
Dec 02 Javascript
canvas绘制多边形
Feb 24 Javascript
angularJs的ng-class切换class
Jun 23 Javascript
JS Testing Properties 判断属性是否在对象里的方法
Oct 01 Javascript
javascript 构建模块化开发过程解析
Sep 11 Javascript
javascript用rem来做响应式开发
Jan 13 #Javascript
深入理解ES6之数据解构的用法
Jan 13 #Javascript
详解ES6语法之可迭代协议和迭代器协议
Jan 13 #Javascript
详解如何在React组件“外”使用父组件的Props
Jan 12 #Javascript
vue使用element-ui的el-input监听不了回车事件的解决方法
Jan 12 #Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
Jan 12 #Javascript
js 索引下标之li集合绑定点击事件
Jan 12 #Javascript
You might like
PHP5常用函数列表(分享)
2013/06/07 PHP
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
老版本PHP转义Json里的特殊字符的函数
2015/06/08 PHP
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
php array_chunk()函数用法与注意事项
2019/07/12 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
使用jQuery操作Cookies的实现代码
2011/10/09 Javascript
javascript中undefined与null的区别
2015/08/16 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
浅谈React前后端同构防止重复渲染
2018/01/05 Javascript
vue实现word,pdf文件的导出功能
2018/07/31 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
JS实现数组去重,显示重复元素及个数的方法示例
2019/01/21 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
[01:02:26]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第二场 1月18日
2021/03/11 DOTA
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
Python中列表list以及list与数组array的相互转换实现方法
2017/09/22 Python
python爬取各类文档方法归类汇总
2018/03/22 Python
python实现音乐播放和下载小程序功能
2020/04/26 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
巴黎一票通:The Paris Pass
2018/02/10 全球购物
戴尔马来西亚官网:Dell Malaysia
2020/05/02 全球购物
财务管理专业毕业生求职信范文
2013/09/21 职场文书
物流业务员岗位职责
2014/02/08 职场文书
高中军训第一天感言
2014/03/06 职场文书
个人廉洁自律承诺书
2014/03/27 职场文书
购房协议书范本
2014/04/11 职场文书
与美同行演讲稿
2014/09/13 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
班主任寄语2015
2015/02/26 职场文书
人事聘任通知
2015/04/21 职场文书
开学第一周总结
2015/07/16 职场文书
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle