vue移动端(持续更新......)

介绍项目

一,一个 .vue 的文件叫做单文件组件

二,单页应用也就是说,项目本身开始只会请求一个html文件,js通过监听URL的变化,去销毁当前的组件从而展示下一个组件

减少http请求次数,虽然缺点比较明显,但是vue通过服务端渲染解决它

 三,多页应用,每个页面都会去请求一个html文件

1.指定屏幕的缩放级别

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

2.reset.css(基础样式的修饰,保证在所有的移动端屏幕,浏览器上显示的效果是一致的)

文件里面上传了一个文件名为reset文件夹的scss库,项目里面可以直接使用

main.js里或者app.vue里

3.移动端1像素边框的问题, css中1px在多倍屏中会被渲染成2像素或者是3像素,引入border.css文件

4.移动端300毫秒点击延迟的问题,(某些机型或者某些浏览器上使用click事件会出现300毫秒延迟),需要安装 fastclick 的依赖包

 

 5. iconfont 图标库  https://www.iconfont.cn/   (使用字体图标的两种方式)

5.1 在index.html文件引入
<link rel="stylesheet" href="//at.alicdn.com/t/font_1476253_iti3hbwl1i.css">

5.2 将图标下载到本地,在main.js引入

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

 

 6. 移动端头部按需显示(slot)

6.1抽成组件

<template>
  <header class="header">
    <slot name="left"></slot>

    <span class="header_title">
      <span class="header_title_text ellipsis">{{ title }}</span>
    </span>

    <slot name="right"></slot>
  </header>
</template>

<script>
export default {
  props: {
    title: String
  }
};
</script>

6.2 页面引入组件  title="首页" 父给子传参

<template>
  <div>
  头部组件 <Header title="首页"> <span slot="left"> <i class="iconfont icon-sousuo1"></i> </span> <span slot="right">登录/注册</span> </Header>
<div>首页内容</div> </div> </template> <script> import Header from "../../components/header/Header"; export default { components: { Header } } </script>

 7. 轮播图的使用,一般UI组件库都带,vant,mint, 或者swiper官网

8. 处理网速慢的情况下轮播图以下内容抖动效果(用户体验不好)

在轮播图外面套个盒子,事先计算好轮播图的宽高必比例,就算网速慢的情况下也不至于内容跑到上面(相当于占位符)

9.路由的两种跳转方式(参考之前发过的一片博客)

10. better.scroll的使用 https://github.com/ustbhuangyi/better-scroll

 

11.移动端vw布局

vscode插件,

 

鼠标选中16px, alt+z 转换成vw

 

基于vue项目的移动端项目,使用vw作为单位适配页面布局

 

npm i postcss-aspect-ratio-mini postcss-px-to-viewport postcss-write-svg postcss-cssnext postcss-viewport-units cssnano --S 

 

 1 module.exports = {
 2   plugins: {
 3     'postcss-import': {},
 4     'postcss-url': {},
 5     'postcss-aspect-ratio-mini': {},
 6     'postcss-write-svg': {
 7       utf8: false,
 8     },
 9     'postcss-cssnext': {},
10     'postcss-px-to-viewport': {
11       viewportWidth: 375, // 设计稿的尺寸
12       viewportHeight: 667,
13       unitPrecision: 3,
14       viewportUnit: 'vw',
15       selectorBlackList: ['.ignore', '.hairlines', 'van-tag', 'van-divider'],
16       minPixelValue: 1,
17       mediaQuery: false,
18     },
19     'postcss-viewport-units': {
20       filterRule: (rule) =>
21         rule.nodes.findIndex((i) => i.prop === 'content') === -1,
22     },
23     cssnano: {
24       autoprefixer: true,
25       'posrcss-zindex': false,
26     },
27   },
28 }

装完包后再 配置.postcssrc.js

在配置好之后,又报错缺少node包,缺少这两个包,装一下就好了

 

原文地址:https://www.cnblogs.com/shun1015/p/12829021.html