详解基于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 相关文章推荐
JavaScript 数组循环引起的思考
Jan 01 Javascript
Json序列化和反序列化方法解析
Dec 19 Javascript
Jquery实现自定义tooltip示例代码
Feb 12 Javascript
php中给js数组赋值方法
Mar 10 Javascript
JS 获取浏览器和屏幕宽高等信息代码
Mar 31 Javascript
html的DOM中document对象images集合用法实例
Jan 21 Javascript
JS调用打印机功能简单示例
Nov 28 Javascript
折叠菜单及选择器的运用
Feb 03 Javascript
基于JavaScript实现的插入排序算法分析
Apr 14 Javascript
jQuery加密密码到cookie的实现代码
Apr 18 jQuery
关于vue.js组件数据流的问题
Jul 26 Javascript
Vue v-model组件封装(类似弹窗组件)
Jan 08 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编码转换
2012/11/05 PHP
深入分析PHP设计模式
2020/06/15 PHP
input的focus方法使用
2010/03/13 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
2015/03/12 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
JQuery点击事件回到页面顶部效果的实现代码
2016/05/24 Javascript
JavaScript实现的select点菜功能示例
2017/01/16 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
vue实现全选、反选功能
2020/11/17 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
2017/08/24 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
JavaScript中交换值的10种方法总结
2020/08/18 Javascript
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
Python简单实现的代理服务器端口映射功能示例
2018/04/08 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
python sort、sort_index方法代码实例
2019/03/28 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
浅谈Python3实现两个矩形的交并比(IoU)
2020/01/18 Python
Python爬虫爬取糗事百科段子实例分享
2020/07/31 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
C和C++经典笔试题附答案解析
2014/08/18 面试题
同步和异步有何异同,在什么情况下分别使用他们?
2012/12/28 面试题
中学家长会邀请函
2014/02/03 职场文书
文明礼仪演讲稿
2014/05/12 职场文书
工程安全生产协议书
2014/11/21 职场文书
演讲开头怎么书写?
2019/08/06 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python
压缩Redis里的字符串大对象操作
2021/06/23 Redis
Spring Boot实现文件上传下载
2022/08/14 Java/Android