前言

vue3.x相关的生态已经在不断的完善中,相应的UI/路由/pinia等都已成熟,新的项目也在考虑使用新版本开发了,开一个帖子记录一下搭建移动端简易模版的过程,方便以后回顾。

vite前端构建工具

兼容性注意

Vite 需要 Node.js 版本 14.18+,16+。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版本。

使用 NPM:

npm create vite@latest

使用 Yarn:

yarn create vite

使用 PNPM:

pnpm create vite

选择自己需要的模版以后安装依赖并启动

CSS 预处理器安装

sass

Vite 提供了对 .scss, .sass, .less, .styl.stylus 文件的内置支持。没有必要为它们安装特定的 Vite 插件,但必须安装相应的预处理器依赖:

yarn add sass -D

移动端适配

viewport 之前做移动端适配通常都是使用lib-flexible+postcss-pxtorem的方案,但是随着viewport单位得到越来越多浏览器的支持,lib-flexible 官方也基本已经废弃,建议大家都使用viewport方案。

postcss-px-to-viewport

将px单位转换为视口单位的 (vw, vh, vmin, vmax) 的 PostCSS 插件.

将px自动转换成viewport单位vw,vw本质上还是一种百分比单位,100vw即等于100%

1.安装

使用 NPM:

npm install postcss-px-to-viewport --save-dev

使用 Yarn:

yarn add -D postcss-px-to-viewport

2.在项目根目录下创建 postcss.config.cjs 文件

module.exports = {plugins: {'postcss-px-to-viewport': {unitToConvert: 'px', // 需要转换的单位,默认为"px"viewportWidth: 375, // 设计稿的视口宽度exclude: [/node_modules/], // 解决vant375,设计稿750问题。忽略某些文件夹下的文件或特定文件unitPrecision: 5, // 单位转换后保留的精度propList: ['*'], // 能转化为vw的属性列表viewportUnit: 'vw', // 希望使用的视口单位fontViewportUnit: 'vw', // 字体使用的视口单位selectorBlackList: [], // 需要忽略的CSS选择器,不会转为视口单位,使用原有的px等单位。minPixelValue: 1, // 设置最小的转换数值,如果为1的话,只有大于1的值会被转换mediaQuery: false, // 媒体查询里的单位是否需要转换单位replace: true, //是否直接更换属性值,而不添加备用属性landscape: false, // 是否添加根据 landscapeWidth 生成的媒体查询条件 @media (orientation: landscape)landscapeUnit: 'vw', // 横屏时使用的单位landscapeWidth: 1125 // 横屏时使用的视口宽度}}
}

3.这样就配置好了,开发可以根据设计稿的尺寸去配置viewportWidth属性就可以达到一比一的视图开发了,不在需要额外的继续尺寸。

Vant

Vant 是一个轻量、可靠的移动端组件库,于 2017 年开源。

目前 Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本和支付宝小程序版本。

1.安装

使用 NPM:

npm install vant

使用 Yarn:

yarn add vant

2.按需引入组件

在基于 vitewebpackvue-cli 的项目中使用 Vant 时,推荐安装 unplugin-vue-components 插件,它可以自动按需引入组件。

安装插件

# 通过 npm 安装
npm i unplugin-vue-components -D# 通过 yarn 安装
yarn add unplugin-vue-components -D# 通过 pnpm 安装
pnpm add unplugin-vue-components -D

配置插件

如果是基于 vite 的项目,在 vite.config.js 文件中配置插件:

import vue from '@vitejs/plugin-vue';
import Components from 'unplugin-vue-components/vite';
import { VantResolver } from 'unplugin-vue-components/resolvers';export default {plugins: [vue(),Components({resolvers: [VantResolver()],}),],
};

如果是基于 vue-cli 的项目,在 vue.config.js 文件中配置插件:

const { VantResolver } = require('unplugin-vue-components/resolvers');
const ComponentsPlugin = require('unplugin-vue-components/webpack');module.exports = {configureWebpack: {plugins: [ComponentsPlugin({resolvers: [VantResolver()],}),],},
};

如果是基于 webpack 的项目,在 webpack.config.js 文件中配置插件:

const { VantResolver } = require('unplugin-vue-components/resolvers');
const ComponentsPlugin = require('unplugin-vue-components/webpack');module.exports = {plugins: [ComponentsPlugin({resolvers: [VantResolver()],}),],
};

3.引入组件

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import { Button, Loading, Empty } from 'vant'const app = createApp(App)
app.use(Button).use(Loading).use(Empty).use(router).mount('#app')

4.引入函数组件的样式

Vant 中有个别组件是以函数的形式提供的,包括 ToastDialogNotifyImagePreview 组件。在使用函数组件时,unplugin-vue-components 无法自动引入对应的样式,因此需要手动引入样式。

// Toast
import { Toast } from 'vant';
import 'vant/es/toast/style';// Dialog
import { Dialog } from 'vant';
import 'vant/es/dialog/style';// Notify
import { Notify } from 'vant';
import 'vant/es/notify/style';// ImagePreview
import { ImagePreview } from 'vant';
import 'vant/es/image-preview/style';

vue-router

Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举。功能包括:

  • 嵌套路由映射
  • 动态路由选择
  • 模块化、基于组件的路由配置
  • 路由参数、查询、通配符
  • 展示由 Vue.js 的过渡系统提供的过渡效果
  • 细致的导航控制
  • 自动激活 CSS 类的链接
  • HTML5 history 模式或 hash 模式
  • 可定制的滚动行为
  • URL 的正确编码

安装

yarn add vue-router

src/router/index.js

import { createRouter, createWebHashHistory } from 'vue-router'export const constantRoutes = [{path: '/',component: () => import('@/views/index.vue'),},
]const router = createRouter({history: createWebHashHistory(),routes: constantRoutes
})export default router

引入

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import { Button, Loading, Empty } from 'vant'const app = createApp(App)
app.use(Button).use(Loading).use(Empty).use(router).mount('#app')

Pinia

Pinia 最初是在 2019 年 11 月左右重新设计使用 Composition API 。从那时起,最初的原则仍然相同,但 Pinia 对 Vue 2 和 Vue 3 都有效,并且不需要您使用组合 API。 除了安装和 SSR 之外,两者的 API 都是相同的,并且这些文档针对 Vue 3,并在必要时提供有关 Vue 2 的注释,以便 Vue 2 和 Vue 3 用户可以阅读!

安装

yarn add pinia

src/store/setting.js

import { defineStore } from 'pinia'
export const useSettingsStore = defineStore('settings', {state: () => {return {count: 0}},actions: {addCount(){this.count++}}
})

页面使用

<script setup>
import { useSettingsStore } from '@/stores/setting'const settingsStore = useSettingsStore()const clickCountButton = () => {settingsStore.addCount()
}
</script>

配置别名

vite.config.js

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import Components from 'unplugin-vue-components/vite';
import { VantResolver } from 'unplugin-vue-components/resolvers';
import path from 'path'function resolve(dir) {return path.join(__dirname, dir)
}// https://vitejs.dev/config/
export default defineConfig({resolve: {alias: {'@': resolve('src')}},plugins: [vue(),Components({resolvers: [VantResolver()],}),]
})

结尾

以上就是简单配置一个基于vue3+vite3+vant搭建移动端简易模版, 大家可以在此基础上去加各种插件,加代码规范等等,有任何问题可以在评论区和我沟通,我将第一时间反馈。

最近还整理一份JavaScript与ES的笔记,一共25个重要的知识点,对每个知识点都进行了讲解和分析。能帮你快速掌握JavaScript与ES的相关知识,提升工作效率。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

vue3+vite3+vant搭建移动端简易模版相关推荐

  1. vue+vant搭建移动端框架

    主要内容 1.vant/rem移动端适配的解决方案 2. vue/cli二次配置及优化处理 3.基于注册动态模式实现loading 4.掌握vuex永久化存储 1 创建一个vue项目 1.1安装vue ...

  2. Uni-APP+Vite+Vue3+TS+Vant 搭建项目

    一.创建工程 下载官方的cli代码 https://gitee.com/dcloud/uni-preset-vue/repository/archive/vite-ts.zip 解压缩后执行下面命令即 ...

  3. Vue3+Vite3 SSR基本搭建

    Vue3+Vite3 SSR基本搭建 首先说明如果是生产使用强烈推荐Nuxt,但是如果想深入服务端渲染的运行原理,可以看本篇,会根据渲染流程搭建一个demo版ssr,源码在最后会贴上 主要技术栈:Vi ...

  4. vue+antd搭建后台管理界面模版(PC端),适配中文、英文、日文 mock数据,开箱即用

    vue+antd搭建后台管理界面模版(PC端) 完整代码下载地址:vue+antd搭建后台管理界面模版(PC端) 技术栈 vue2 + vuex + vue-router + webpack + ES ...

  5. Vue项目实战——【基于 Vue3.x + Vant UI】实现一个多功能记账本(登录注册页面,验证码)

    基于 Vue3.x + Vant UI 的多功能记账本(四) 文章目录 基于 Vue3.x + Vant UI 的多功能记账本(四) 项目演示 1.登录注册页面 2.图片验证码 3.修改 axios ...

  6. Vue 搭建移动端 h5 项目步骤

    Vue 搭建移动端 h5 项目步骤 简介 最近团队里的其他前端小伙伴需要自己搭建移动端 h5 项目,没有整体的思路,于是我就写了这个步骤. 提示:(2022-10-28更新) vue-cli 和vue ...

  7. 使用VUE3.0版本搭建H5模板

    使用VUE3.0版本搭建H5模板 仓库地址,有需要的可以参考参考 https://gitee.com/young_frivolous/vue3-app-template/tree/master 为了方 ...

  8. Vue项目实战——【基于 Vue3.x + Vant UI】实现一个多功能记账本(项目演示、涉及知识点、源码分享)

    基于 Vue3.x + Vant UI 的多功能记账本(一) 文章目录 基于 Vue3.x + Vant UI 的多功能记账本(一) Vue3.x 实现多功能记账本 1.前言 2.项目演示 3.涉及知 ...

  9. 基于 vue-cli4+vant 搭建 H5 通用架子(支持微信公众号)

    基于 vue-cli4+vant 搭建 H5 通用架子(支持微信公众号) 已经上传vue3.0+ts分支 如果有优化建议和bug请提issue 代码仓库 功能介绍 支持 px 自动转 vw(rem暂时 ...

最新文章

  1. LeetCode 所有题目总结
  2. 中科院自动化所余山:对大脑的未知,并不阻碍借鉴大脑,成就智能
  3. 检查 linux guest vm 使用的什么 虚拟化技术
  4. Lite-HRNet
  5. SEO优化可以从这几个方面着手
  6. 拥抱haXe之javascript 也玩mvc
  7. 反射型XSS漏洞详解
  8. pytorch 画loss曲线_Pytorch使用tensorboardX可视化。超详细!!!
  9. 2018年,该转行AI工程师吗?
  10. mac 下载的破解软件显示 文件已损坏
  11. 获取页面所有属性并生成html6,JavaScript基础练习题(三)
  12. webpack插件实现自动抽取css中的主题色样式,并动态切换主题色(element-ui)
  13. 三元运算符和if else_PHP If-Else,Switch Case和速记三元运算符示例
  14. 遥感原理与应用_专家报告 | 叶绿素荧光卫星遥感—原理与应用
  15. 内外网隔离 双网隔离DoraOS云终端双桌面云办公应用
  16. 七.deepin备份还原
  17. n服登陆显示从服务器断开,魔兽世界N服卡认证、断开连接的解决方法
  18. Java 日期常用API
  19. 遇到问题--mongodb--Prematurely reached end of stream
  20. 【机器学习】【决策树】C4.5算法,详解+python代码实现

热门文章

  1. word页码与行号怎么统一设置字体
  2. Centos7安装普罗米修斯(Prometheus)监控
  3. 《C语言程序设计》江宝钏主编-习题6-2-排列数
  4. FTP上传成功之后却查找不到文件
  5. 寒假第三周网页制作总结
  6. 数据结构上机实验6.15
  7. jdk1.8——Base64
  8. QPainter绘制自定义大小的图片
  9. 隔年增长的题_2019行测备考:数量关系_浅谈隔年增长率的解法
  10. World Locking Tools for Unity (五)安装部分