详解Vue-cli3.X使用px2rem遇到的问题

详解Vue-cli3.X使用px2rem遇到的问题

什么是vue-cli3.X

Vue CLI 是一个基于Vue.js进行快速开发的完整系统。它包括一个响应式的开发服务器、可定制的webpack配置、常规的Vue项目构建任务和集成了最佳实践的生产环境构建等。

何为px2rem

px2rem 是一种将px值转化为rem值的工具。通过将框架内各个元素的单位从px转化为rem,可以让页面按比例缩放,适应不同尺寸的屏幕。

问题描述

在使用 vue-cli3.X 进行移动端开发时,我们常常会使用 px2rem 将页面中的单位替换为 rem,以便页面自适应。但是,在使用 px2rem 时,可能会遇到以下两个问题:

  • 问题一:将 px 转为 rem 时,会有一些误差。比如应该是 1rem,但实际上转换后可能变成了 0.999rem 等。

  • 问题二:在使用 vuex 进行状态管理时,如果将各个元素的单位从 px 转换成 rem,可能会影响到 vuex 中的数据显示。因为vuex中的数据是以px为单位,将单位转换成rem后会导致数据显示错误。

解决方案

对于问题一,我们可以使用 postcss-px2rem-exclude 插件进行精确转换。

具体步骤如下:

  1. 安装插件
npm install postcss-px2rem-exclude --save-dev
  1. 在 postcss.config.js 中配置插件
module.exports = {
  plugins: {
    autoprefixer: {},
    'postcss-px2rem-exclude': {
      remUnit: 75,  // 根据设计稿调整
      exclude: /node_modules|folder_name/i    //指定需要忽略的文件夹
    }
  }
}
  1. 在需要转换的样式文件中引入以下语句
/* 在需要转换的 css 文件中 */
@import '~postcss-px2rem-exclude/lib/plugin.js';
html {
  font-size: 14px;    // 调整基准字体大小
}

对于问题二,我们需要在 vuex 中将 px 转换成 rem 单位。

具体步骤如下:

  1. 在 store 中添加如下代码
const actions = {
  changeFontSize({commit, state}, payload) {
    let value = payload.value / (750 / (state.windowWidth / 100)) + 'rem'
    // 750为设计稿宽度,100为换算基准
    commit('SET_FONT_SIZE', { value });
  }
};
  1. 在对应的组件中使用
import { mapActions } from 'vuex';
export default {
  methods: {
    ...mapActions(['changeFontSize']),
    handleChangeFontSize(value) {
      this.changeFontSize({ value });
    }
  }
};

示例说明

示例一:假设设计稿中某个图片的尺寸是 200px * 200px,在使用 px2rem 进行转换时,可能会发现实际尺寸有所偏差,比如实际变成了 199px * 199px。

此时,可通过使用 postcss-px2rem-exclude 插件进行精确转换,将像素转换为元单位,以避免误差。

示例二:在使用 vuex 进行状态管理时,我们可能会将某个元素的单位从 px 转换成 rem,以适应不同的设备。但是,如果直接将 vuex 中的数据也转换成 rem,可能会导致数据显示错误。

解决方案是,在 vuex 中将 px 转换成 rem 单位,以便数据显示正确。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Vue-cli3.X使用px2rem遇到的问题 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • VSCode开发UNI-APP 配置教程及插件

    VSCode开发UNI-APP 配置教程及插件 简介 UNI-APP 是使用 Vue.js 开发跨平台应用程序的前端解决方案之一,同时也是目前最为流行的跨平台解决方案之一。本教程将介绍如何在 VSCode 中进行 UNI-APP 开发的相关配置,并介绍几款常用插件。 环境准备 在开始配置之前,需要安装 VSCode 并确保在本地安装了 node.js 和 n…

    css 2023年6月9日
    00
  • Dreamweaver怎么用CSS制作圆角按钮?

    Dreamweaver 是一款流行的 Web 开发工具,它提供了丰富的功能和工具,可以帮助开发人员快速创建 Web 页面。在 Dreamweaver 中,我们可以使用 CSS 技术来制作圆角按钮。下面是一个完整攻略,包含了 Dreamweaver 怎么用 CSS 制作圆角按钮的过程和两个示例说明。 Dreamweaver 怎么用 CSS 制作圆角按钮 步骤一…

    css 2023年5月18日
    00
  • uniapp使用百度地图的保姆式教学(适合初学者!)

    Uniapp使用百度地图的保姆式教学 Uniapp是一种跨平台的开发框架,可以用于开发多种平台(如安卓、iOS等)的应用程序。而百度地图则是一种非常实用的地图应用程序,它提供了各种地图相关的功能,如定位、搜索、路径规划等。本文将详细讲解如何在Uniapp中使用百度地图,教你如何实现常见的地图功能! 第一步:引入百度地图 JavaScript API 首先需要…

    css 2023年6月10日
    00
  • css3的@media属性实现页面响应式布局示例代码

    我会详细讲解一下“CSS3的@media属性实现页面响应式布局示例代码”的完整攻略。 什么是响应式布局? 响应式布局是一种基于CSS3媒体查询(Media Queries)的技术,通过检测设备类型、分辨率等属性,调整网页布局和样式,实现不同设备下展现不同的效果。其目的是为了让网页在PC端、平板端和手机端等设备上都能够获得更流畅、更美观的用户体验。 响应式布局…

    css 2023年6月10日
    00
  • JS代码优化的8点建议

    以下是详细讲解“JS代码优化的8点建议”的完整攻略。 1. 使用 let 和 const 代替 var 在ES6中,let和const关键字引入了块级作用域,避免了在函数作用域中变量声明提升的问题。使用let和const不仅提高了代码可读性,还有助于减少变量污染。 以一个简单的示例来说明: var a = 10; function foo() { var a…

    css 2023年6月10日
    00
  • vue-quill-editor如何设置字体大小

    请参考以下攻略: vue-quill-editor如何设置字体大小 vue-quill-editor是一个Vue.js组件,用于在应用程序中集成Quill富文本编辑器。在设置字体大小时,我们可以通过以下步骤来实现: 创建一个自定义组件 我们可以使用vue-cli快速创建一个Vue.js工程,并通过npm安装vue-quill-editor: npm inst…

    css 2023年6月11日
    00
  • css代码优化的12个技巧

    当我们在编写CSS代码时,有一些技巧可以使我们的代码更加高效、易于维护和易于扩展。以下是CSS代码优化的12个技巧: 1. 使用CSS预处理器 使用CSS预处理器(如Sass或Less)可以提高代码的可读性和可维护性,使我们能够更轻松地编写复杂的CSS样式。 2. 避免使用通配符 通配符选择器(如*)会在整个文档中匹配所有元素,因此会降低页面的性能。我们应该…

    css 2023年6月9日
    00
  • 解决html-jquery/js引用外部图片时遇到看不了或出现403的问题

    HTML页面中使用jQuery或JavaScript引用外部图片时可能会出现无法加载图片或403错误的问题,这可能是由于以下原因所导致的: 图片路径不正确 图片链接被防盗链所限制 以下是解决此类问题的攻略: 确认图片路径是否正确 要使用外部图片,必须确定图片的路径是正确的。完整的图片路径应包括图片名称和扩展名,如“http://www.example.com…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部