vue cli3适配所有端方案的实现

vue cli3适配所有端方案的实现攻略

简介

Vue CLI 3 是基于 Vue.js 的官方命令行工具,用于快速搭建 Vue.js 项目。它的优点在于 :

  • 内置了大量的插件和预设,完全配置化。
  • 集成了项目创建、开发、打包等主要功能。
  • 使用独立的配置文件 vue.config.js 定制大部分的配置。
  • 支持插件定制和扩展。

在移动互联网时代,前端开发所涉及到的设备类型越来越丰富,因此如何让一个 Web 应用能够适应不同设备尺寸、屏幕分辨率和用户交互方式成为了很重要的问题。本文将分享如何基于 Vue CLI 3 的配置,实现一个完整的多端适配方案。

实现过程

1. 配置viewport属性

viewport 可以理解为视口,主要用于网页在移动端显示的区域大小。因为移动设备屏幕大小不一,需要适配各种不同的屏幕尺寸。若不设定 viewport,会默认以 980px 宽度来渲染页面,显然会发生页面缩放、错位等问题,影响用户体验。

<head> 标签中添加以下代码即可:

<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=False">

上述代码表示:使用设备的宽度作为 viewport 的宽度,初始缩放比例为 1(不缩放),最小缩放比例为 1(禁止缩小),最大缩放比例为 1(禁止放大),且不允许用户进行缩放。

2. 使用rem布局

在移动端设备上,因为屏幕尺寸、dpi 以及像素密度不同时,使用传统的 px 布局会导致页面在不同设备上显示效果不一致,不利于多端适配。因此,我们可以使用 rem 布局。

rem 布局是指根据 html { font-size: 100px; } 为基准,以此来将页面中的 px 值转为 rem 值。这样页面中所有元素的尺寸都是相对于 html 中的 font-size 的大小的,而 html 中的 font-size 又可以根据屏幕宽度动态调整。

Vue CLI 3 可以在 vue.config.js 文件中设置选项,开启 PostCSS 的插件并设置 remUnit 参数来将 px 转换成 rem。

module.exports = {
  css: {
    loaderOptions: {
      postcss: {
        plugins: [
          require('postcss-plugin-px2rem')({
            rootValue: 100, // 换算基数,比如:设计稿宽度为1920,rootValue应该设置为192,这里设置为100便于计算
            // unitPrecision: 5, // 允许REM单位增长到的十进制数字。
            // propWhiteList: [], // 默认值是一个空数组,这意味着禁用白名单并启用所有属性。
            // propBlackList: [], // 黑名单
            // exclude: /(node_module)/, // 忽略node_modules中的文件
            // selectorBlackList: [], // 过滤掉某些选择器
            // ignoreIdentifier: false, // 是否忽略某些属性
            // replace: true, // 是否替换包含REM的规则
            // mediaQuery: false, // 是否允许在媒体查询中转换px
            // minPixelValue: 0 // 设置要替换的最小像素值
          }),
        ]
      }
    }
  }
}

3. 使用字体图标

使用字体图标可以大大减少图片请求和加载时间,且还可以随心所欲地调整图标大小,轻松实现多端适配。我们可以使用第三方的字体图标库,如阿里矢量图库 iconfont 。

在 iconfont 官网选择需要的图标并下载到本地,将所下载的文件解压后,选中其中的文件夹和文件后复制到项目中的 public 文件夹下。在官网生成的样式文件中查找并复制 @font-face 规则。

在 Vue 项目发开的过程中,使用这个 @font-face 规则内联到 App.vue 中,这样在任何一个组件内都可以使用。举个例子:

<template>
  <div>
    <router-view/>
    <i class="iconfont"></i>
    <i class="iconfont icon-add"></i>
    <i class="iconfont icon-search"></i>
  </div>
</template>
<style lang="scss" scoped>
  @import 'iconfont.css';
  // 加载iconfont css文件

  .iconfont {
    font-family: "iconfont" !important;
    font-size: 16px;
    font-style: normal;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  // 设置字体图标的样式

  .icon-add:before {
    content: "\e6a2";
  }

  .icon-search:before {
    content: "\e6a3";
  }
  // 设置矢量图标的内容
</style>

这样一来,页面上就可以使用字体图标了,且在不同设备和分辨率下都保持清晰可见,轻松实现多端适配。

示例

下面简单演示一个使用 Vue CLI 3 的多端适配示例。

1. 初始化工程

使用命令行工具,进入你想要存放项目的目录,执行以下命令:

vue create myproject

按照提示安装依赖,等待创建完成。

2. 配置viewport

public/index.html 中的 <head> 标签中添加以下代码:

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

3. 使用rem布局

安装 postcss-plugin-px2rem, 该插件可以在 css 编译过程中将 px 转换为 rem。

npm install postcss-plugin-px2rem -D

在根目录下创建 vue.config.js 文件,添加如下代码:

module.exports = {
  css: {
    loaderOptions: {
      postcss: {
        plugins: [
          require('postcss-plugin-px2rem')({
            rootValue: 75, // 设计稿宽度的1/10,例如设计稿宽度为 750px,则rootValue应该设置为75
            unitPrecision: 2, // 保留小数个数
            minPixelValue: 2, // 小于此值的px单位不转换
            selectorBlackList: ['van'], // 白名单列表
            propList: ['*'] //属性列表:允许替换所有属性的单位,'*'表示所有
          })
        ]
      }
    }
  }
}

4. 使用字体图标

登陆 iconfont 官网,选择好图标后生成对应的 css 代码,手动将文件下载到本地后替换 src/assets 下的同名文件。

在全局 main.js 中注册:

import './assets/css/iconfont.css'

之后就可以在组件中使用:

<i class="iconfont icon-xxx"></i>

总结

Vue CLI 3 是构建 Vue.js 项目的理想选择,它提供了丰富的插件和预设、完全配置化,而通过上述三个步骤,我们可以轻松地实现移动端适配。同时,由于 Vue CLI 3 本身集成了多种功能和预设,以及支持插件的定制和扩展,因此,开发人员可以自由选择适合自己场景和需求的多端适配方案,提高开发效率和用户体验。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue cli3适配所有端方案的实现 - Python技术站

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

相关文章

  • 使用css的background:url设置背景图方法

    下面是关于“使用css的background:url设置背景图方法”的完整攻略: 1. 准备背景图 首先,你需要准备一张背景图,可以是jpg、png、gif等格式的图片。为了避免图片失真,最好选择高清图片。 2. 使用background:url属性 接下来,在CSS中使用background:url属性来设置背景图。这个属性有多个子属性,如下所示: bac…

    css 2023年6月9日
    00
  • 从零搭建一个vite+vue3+ts规范基础项目(搭建过程问题小结)

    首先需要明确,要搭建一个Vite + Vue3 + TypeScript的项目,需要考虑以下步骤: 安装NodeJS和npm:如果你的机器上没有安装NodeJS和npm,请先到Node.js官网(https://nodejs.org/en/)下载安装后,打开cmd或者终端,输入node -v和npm -v,查看是否安装成功。 初始化项目:打开命令行,创建一个…

    css 2023年6月9日
    00
  • 图片下面出现空白像素BUG的常用解决方法归纳

    图片下面出现空白像素BUG的常用解决方法归纳 在网页开发中,我们经常会遇到图片下面出现空白像素的问题,具体表现为,图片下方会出现一些看似没有任何内容的空白像素,这不仅影响页面的美观度,还会影响排版的准确性。在本文中,我们将会介绍一些常见的解决方法,以帮助大家快速地解决这个问题。 方法一:使用display:block 将图片的display属性设置为bloc…

    css 2023年6月10日
    00
  • CSS使用自定义光标样式的实现_遁地龙卷风

    CSS使用自定义光标样式的实现是一种非常有趣的技巧。通过使用这种技术,我们可以实现可以随意更改鼠标图标的效果。在这里,我们将讨论如何使用CSS实现一些非常有趣的自定义鼠标效果。 1.准备鼠标样式 首先,我们需要准备好我们的鼠标样式。这可以通过创建一个图像文件来完成。在这个图像文件中,我们需要用透明色或者特殊颜色绘制我们想要的鼠标形状,其他地方则用普通颜色进行…

    css 2023年6月10日
    00
  • 解决vue打包css文件中背景图片的路径问题

    针对vue打包css文件中背景图片的路径问题,我为您提供以下完整攻略: 背景 在使用vue开发时,有时我们需要在CSS样式中使用背景图片,而在Webpack打包后,背景图片的路径不正确,导致页面无法正确显示背景图片。 解决方法 我们可以通过配置Webpack的url-loader和file-loader来解决这个问题。 1. 安装依赖 首先需要安装以下依赖:…

    css 2023年6月9日
    00
  • 使用jQuery mobile NuGet让你的网站在移动设备上同样精彩

    使用jQuery mobile NuGet将你的网站扩展到移动设备具有很大的优势。本攻略将为您提供详细的指导步骤,让你的网站在移动设备上能够更充分的发挥功能。 安装jQuery mobile NuGet 要在你的网站中使用jQuery mobile NuGet,你需要首先安装它。按照以下步骤完成安装: 打开你的项目,右键点击“引用”文件夹。 选择“管理NuG…

    css 2023年6月11日
    00
  • CSS Gird布局教程指南

    当谈到网页布局技术时,CSS Grid应该是最流行的之一。下面是一个CSS Grid布局教程指南,让您了解如何使用CSS Grid来构建现代、响应式的网站布局。 什么是CSS Grid? CSS Grid是一个网页布局技术,它允许您创建复杂的网格结构,以更好地控制您的网页上的元素排列。使用CSS Grid,您可以轻松地创建响应式布局,以满足不同屏幕尺寸的需求…

    css 2023年6月10日
    00
  • flex布局中子项目尺寸不受flex-shrink限制的问题解决

    在flex布局中,通常使用flex-grow、flex-shrink和flex-basis来控制子项目的尺寸。其中,flex-shrink属性用于指定当空间不足时,子项目的缩小比例。但是,有的时候我们需要使某个子项目在空间不足时不受限制,这时候需要用到一些小技巧。 以下是解决子项目尺寸不受flex-shrink限制的一些方法: 1. 使用flex-basis…

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