详解基于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 相关文章推荐
Mozilla中显示textarea中选择的文字
Sep 07 Javascript
jQuery 对象中的类数组操作
Apr 27 Javascript
JSON.parse 解析字符串出错的解决方法
Jul 08 Javascript
js批量设置样式的三种方法不推荐使用with
Feb 25 Javascript
jquery对复选框(checkbox)的操作汇总
Jan 13 Javascript
jQuery解决浏览器兼容性问题案例分析
Apr 15 Javascript
AngularJS之依赖注入模拟实现
Aug 19 Javascript
Vue2.0 UI框架ElementUI使用方法详解
Apr 14 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
May 16 jQuery
d3绘制基本的柱形图的实现代码
Dec 12 Javascript
JavaScript实现星级评价效果
May 17 Javascript
JavaScript数组排序功能简单实现
May 14 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
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
AngularJS向后端ASP.NET API控制器上传文件
2016/02/03 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
jQuery源码分析之sizzle选择器详解
2017/02/13 Javascript
JS实现的随机排序功能算法示例
2017/06/09 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
Vue cli构建及项目打包以及出现的问题解决
2018/08/27 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
vue计算属性无法监听到数组内部变化的解决方案
2019/11/06 Javascript
python实现给字典添加条目的方法
2014/09/25 Python
python实现udp数据报传输的方法
2014/09/26 Python
Python 异常处理的实例详解
2017/09/11 Python
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
python使用pycharm环境调用opencv库
2018/02/11 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
python Selenium 库的使用技巧
2020/10/16 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
戴尔加拿大官网:Dell加拿大
2016/09/17 全球购物
Kathmandu澳洲户外商店:新西兰户外运动品牌
2017/11/12 全球购物
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
中科软笔试题和面试题
2014/10/07 面试题
商务英语专业求职信范文
2014/01/28 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
2019年工作总结范文
2019/05/21 职场文书
PyTorch梯度裁剪避免训练loss nan的操作
2021/05/24 Python