详解基于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 相关文章推荐
多个iframe自动调整大小的问题
Sep 18 Javascript
用js生产批量批处理执行命令
Jul 28 Javascript
TBCompressor js代码压缩
Jan 05 Javascript
最短的javascript:地址栏载入脚本代码
Oct 13 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
Jun 30 Javascript
Javascript中常用类型的格式化方法小结
Dec 26 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
Jan 21 Javascript
Three.js利用性能插件stats实现性能监听的方法
Sep 25 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
Jul 13 Javascript
Nuxt升级2.0.0时出现的问题(小结)
Oct 08 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
Apr 28 Javascript
Nuxt 项目性能优化调研分析
Nov 07 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
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
AJAX的使用方法详解
2017/04/29 PHP
php工具型代码之印章抠图
2018/07/18 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
javascript 命名规则 变量命名规则
2010/02/25 Javascript
Javascript倒计时代码
2010/08/12 Javascript
JavaScript中的排序算法代码
2011/02/22 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
2013/01/27 Javascript
jquery网页元素拖拽插件效果及实现
2013/08/05 Javascript
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
Windows 系统下安装和部署Egret的开发环境
2014/07/31 Javascript
使用jquery操作session方法分享
2015/01/22 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
Vue页面骨架屏的实现方法
2018/05/22 Javascript
Vue实现日历小插件
2019/06/26 Javascript
javascript实现简单留言板案例
2021/02/09 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
python mysqldb连接数据库
2009/03/16 Python
python中私有函数调用方法解密
2016/04/29 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
python 模拟贷款卡号生成规则过程解析
2019/08/30 Python
Fossil美国官网:化石手表、手袋、首饰及配饰
2019/02/17 全球购物
高中数学教学反思
2014/01/30 职场文书
演讲稿格式
2014/04/30 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
求职信模板
2014/05/23 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
活动总结模板大全
2015/05/11 职场文书
商业计划书格式、范文
2019/03/21 职场文书
JavaScript实现班级抽签小程序
2021/05/19 Javascript
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL