vue3中常用插件的使用方法:按需引入自定义组件,自动导入依赖包,自动生成路由,自动生成模拟数据

文章目录

      • 一、按需引入自定义组件:unplugin-vue-components
        • 1. 安装[unplugin-vue-components]
        • 2. 在vite中使用
      • 二、自动导入依赖包:unplugin-auto-import
        • 1.安装
        • 2.vite.config.js配置
        • 3.使用效果
      • 三、自动生成路由:vite-plugin-pages
        • 1、安装
        • 2、配置-vite.config.js中配置
        • 3、配置-router/index.js配置,main.js中正常挂载路由
        • 4、route标签中科院对页面的路径进行修改,优先级大于自动生成的路径
        • 5、自动生成vue-router的路由遵循的规则
      • 四、自动生成模拟数据:vite-plugin-mock
        • 1.安装vite-plugin-mock
        • 2.vite.config.js文件配置
        • 3.在根目录创建mock文件夹,创建index.js
        • 4.使用

一、按需引入自定义组件:unplugin-vue-components

unplugin-vue-components插件可以在Vue文件中自动引入组件(包括项目自身的组件和各种组件库中的组件);

使用此插件后,不需要手动编写import { Button } from 'ant-design-vue’这样的代码了,插件会自动识别template中使用的自定义组件并自动注册。

1. 安装[unplugin-vue-components]
npm install unplugin-vue-components
2. 在vite中使用
import Components from 'unplugin-vue-components/vite' // 按需加载自定义组件
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'export default defineConfig {// ...plugins: [// 按需引入Components({deep: true, // 搜索子目录dirs: ['src/components'], // 按需加载的文件夹resolvers: [ ElementPlusResolver() ] // ElementPlus按需加载})],// ...
}

这样就可以在页面中直接使用element-plus组件了,是的,不需要在main.ts里导入element-plus,然后进行Vue.use,就是这么厉害,直接在页面中用就完事了,并且按需加载组件和样式,非常的强大

二、自动导入依赖包:unplugin-auto-import

模块化已经是现代 Web 开发必不可少的开发方式,频繁引入依赖包是一个常见的操作。但是,手动引入依赖包往往繁琐,尤其是当依赖包数量较多时,会显著降低开发效率。

unplugin-auto-import 插件,可以帮助我们在项目中,自动导入常用的使用的第三方库的 API,就可以方便我们开发,提升开发效率。

1.安装
npm i -D unplugin-auto-import
2.vite.config.js配置
import AutoImport from "unplugin-auto-import/vite"
export default defineConfig({plugins: [...AutoImport ({imports: ["vue", "vue-router","pinia"], //自动引入vue的ref、toRefs、onmounted等,无需在页面中再次引入resolvers:[ElementPlusResolver()]})]
})
3.使用效果

以 Vue 为例,在没有使用自动导入前,需要手写以下的 import 语句:

import { computed, ref } from 'vue'
const count = ref(0)
const doubled = computed(() => count.value * 2)

使用 unplugin-auto-import 插件后:

const count = ref(0)
const doubled = computed(() => count.value * 2)

三、自动生成路由:vite-plugin-pages

使用 vite-plugin-pages 之后:就可以更高效快捷开发。

只需要在目录写好对应页面,即可自动生成路由,上面的路由对应的文件结构如下。

注意: 当然这里使用了 pages ,因为是默认配置,你也可以配置成原来大家更习惯的 views 。

1、安装

vite-plugin-pages 依赖vue-router运行因此还需要安装vue-router

npm install -D vite-plugin-pages
npm install vue-router
2、配置-vite.config.js中配置
import Pages from 'vite-plugin-pages'export default {plugins: [// ...Pages({dirs: "src/views", // 需要生成路由的文件目录,默认就是识别src下面的pages文件exclude: ["**/components/*.vue"], // 排除在外的目录,上面配置目录的例子,里面有 components 目录,我们不希望他被解析为路由extendRoute(route, parent) {if(route.path==='/') return { ...route,redirect:'page1' }//给默认路由加一个redirect,默认为index.vue}}),],
}
3、配置-router/index.js配置,main.js中正常挂载路由
import { createRouter, createWebHistory } from "vue-router";
import routes from "~pages";
const router = createRouter({history: createWebHistory(),routes,
});
export default router;
4、route标签中科院对页面的路径进行修改,优先级大于自动生成的路径
<route>
{name: "name-override",meta: {requiresAuth: false}
}
</route>
5、自动生成vue-router的路由遵循的规则

src/views/index.vue -> /
src/views/index/a.vue -> /a // 这里的a.vue就是index.vue的子路由(children)
src/views/father.vue -> /father
src/views/father/son.vue -> /father/son
src/views/father/[id].vue -> /father/:id
src/views/[father]/son.vue -> /:father/son
src/views/[…all].vue ->文件用来适配404页面

四、自动生成模拟数据:vite-plugin-mock

vite-plugin-mock 是一个用于在开发过程中模拟数据的插件,它可以帮助你在前端开发中更方便地进行测试和开发。

通过使用 vite-plugin-mock,你可以在开发环境中轻松地模拟后端接口返回的数据,从而避免因后端接口未准备好而影响前端开发进度。同时,该插件还支持自定义模拟数据和全局模拟数据,方便你在不同场景下进行测试和开发。

使用 vite-plugin-mock,你需要先安装它,然后在 Vite 配置文件中配置该插件,最后在你的组件或页面中使用 importMock 或 defineMock 方法来模拟数据。具体使用方法可以参考文档或示例代码。

1.安装vite-plugin-mock
npm i mockjs -s
npm i vite-plugin-mock -D
2.vite.config.js文件配置
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { viteMockServe } from 'vite-plugin-mock'export default defineConfig({plugins: [vue(),viteMockServe({mockPath: 'mock',//解析根目录下的mock文件夹}),]
})
3.在根目录创建mock文件夹,创建index.js
import mockJS from 'mockjs'
const userList = mockJS.mock({"data|100": [{name: '@cname','id|+1': 1}]
})const userListData = [{method: 'post',url: '/api/users',response: ({body}) => {return {code: 200,msg: 'success',data: userList}}
}]export default userListData
4.使用
<script setup>
import { ref, reactive, watch, computed, onMounted } from "vue";
onMounted(() => {fetch("/api/users", { method: "post" }).then((res) => {console.log(res);});
});
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/689496.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

任务处理 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 在某个项目中有多个任务(用tasks数组表示)需要您进行处理&#xff0c;其中tasks[i][si,ei], 你可以在si < day < ei 中的任意一天处理该任务&#xff0c;请…

代码随想录day25--回溯的应用4

LeetCode491.非递减子序列 题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素&#xff0c;如出现两个整数相等&#xff0c;…

【目标跟踪】提供一种简单跟踪测距方法(c++)

文章目录 一、前言二、c代码2.1、Tracking2.2、KalmanTracking2.3、Hungarian2.4、TrackingInfo 三、调用示例四、结果 一、前言 在许多目标检测应用场景中&#xff0c;完完全全依赖目标检测对下游是很难做出有效判断&#xff0c;如漏检。检测后都会加入跟踪进行一些判断或者说…

中科星图——Landsat8_C2_ST数据集是经大气校正的地表温度数据

数据名称&#xff1a; Landsat8_C2_ST 数据来源&#xff1a; USGS 时空范围&#xff1a; 2020年1月-2023年3月 空间范围&#xff1a; 全国 数据简介&#xff1a; Landsat8_C2_ST数据集是经大气校正的地表温度数据&#xff0c;属于Collection2的二级数据产品&#xff0…

nginx 日志改为json格式

nginx 日志改为json格式 场景描述 正常使用nginx时&#xff0c;使用默认的日志输出格式&#xff0c;对于后续日志接入其他第三方日志收集、清洗环节&#xff0c;因分隔符问题可能不是很友好。 xxxx - - [19/Feb/2024:11:16:48 0800] "GET /time_feed HTTP/1.1" 20…

虚拟和现实的界限不存在了吗

Sora是美国人工智能公司OpenAI最新发布的“文生视频”大模型。与之前的模型相比&#xff0c;Sora能够一次性生成长达一分钟的高清视频&#xff0c;这是目前业内主流的数秒钟版本所无法比拟的。Sora的发布在市场上引起了极大的关注&#xff0c;并被认为是人工智能领域的一次重大…

Spring boot 实现监听 Redis key 失效事件

一. 开启Redis key过期提醒 方式一&#xff1a;修改配置文件 redis.conf # 默认 notify-keyspace-events "" notify-keyspace-events Ex方式二&#xff1a;命令行开启 CONFIG SET notify-keyspace-events Ex CONFIG GET notify-keyspace-events二. notify-keyspace-e…

【Java EE初阶十三】网络初识

1. 网络发展史 网络发展的几个主要时期&#xff1a; 单机时代->局域网时代->广域网时代->移动互联网时代 随着时代的发展&#xff0c;越来越需要计算机之间互相通信&#xff0c;共享软件和数据&#xff0c;即以多个计算机协同工作来完成 业务&#xff0c;就有了网络互…

行人重识别

&#xfeff;在人的感知系统所获得的信息中&#xff0c;视觉信息大约占到80%&#xff5e;85%。行人重识别&#xff08;person re-identification&#xff09;是近几年智能视频分析领域兴起的一项新技术&#xff0c;属于在复杂视频环境下的图像处理和分析范畴&#xff0c;是许多…

300分钟吃透分布式缓存-02讲:如何根据业务来选择缓存模式和组件?

缓存读写模式 如下图&#xff0c;业务系统读写缓存有 3 种模式&#xff1a; & Cache Aside&#xff08;旁路缓存&#xff09; & Read/Write Through&#xff08;读写穿透&#xff09; & Write Behind Caching&#xff08;异步缓存写入&#xff09; Cache Asid…

redis 值中文显示乱码

问题&#xff1a; 解决办法&#xff1a; exit退出 进入时添加 --raw参数

【软件设计师】程序猿需掌握的技能——数据流图

作为一个程序员&#xff0c;不仅要具备高水平的程序编码能力&#xff0c;还要是熟练掌握软件设计的方法和技术&#xff0c;具有一定的软件设计能力&#xff0c;一般包括软件分析设计图&#xff08;常见的有数据流图&#xff0c;程序流程图&#xff0c;系统流程图&#xff0c;E-…

面试官:能不能给 Promise 增加取消功能和进度通知功能... 我:???

扯皮 这段时间闲着没事就去翻翻红宝书&#xff0c;已经看到 Promise 篇了&#xff0c;今天又让我翻到两个陌生的知识点。 因为 Promise 业务场景太多了自我感觉掌握的也比较透彻&#xff0c;之前也跟着 Promise A 的规范手写过完整的 Promise&#xff0c;所以这部分内容基本上…

常用的图像大小进行操作

一&#xff1a;在图像读取时&#xff0c;常用的读取方式包括PIL和CV2。 1&#xff1a;用PIL读取 首先载入PIL&#xff0c;接着用Image打开图片。 from PIL import Image image Image.open("D:/PycharmProjects/python function/0005.png") print(type(image)) imag…

每日一练:LeeCode-501、二叉搜索树中的众数【二叉搜索树+pre辅助节点+DFS】

本文是力扣LeeCode-LeeCode-501、二叉搜索树中的众数【二叉搜索树pre辅助节点DFS】 学习与理解过程&#xff0c;本文仅做学习之用&#xff0c;对本题感兴趣的小伙伴可以出门左拐LeeCode。 给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root &#xff0c;…

个性签名大全

只许一生浮世清欢愿我以孤独作为铠甲&#xff0c;自此不再受伤愿我是阳光&#xff0c;明媚而不忧伤我不敢太勇敢太执着太骄傲&#xff0c;我怕失去开始你是我的天使&#xff0c;最后你是我的唯一姐的霸气&#xff0c;无人能比&#xff0c;哥的傲气&#xff0c;无人能朋唯有万事…

Unity面试手册:初中级面试题

1.请简述ArrayList和List的主要区别&#xff1f; ArrayList存在不安全类型&#xff08;ArrayList会把所有插入其中的数据都当做Object来处理&#xff09;&#xff0c;装箱拆箱的操作&#xff08;费时&#xff09;&#xff0c;List是泛型类&#xff0c;功能跟ArrayList相似&…

ASUS华硕枪神8笔记本电脑G614JIR,G814JVR,G634JYR,G834JZR工厂模式出厂Windows11系统 带重置还原功能

适用ROG枪神8系列笔记本型号&#xff1a; G614JIR、G614JVR、G634JYR、G634JZR G814JIR、G814JVR、G834JYR、G834JZR 链接&#xff1a;https://pan.baidu.com/s/1tYZt6XFNC2d6YmwTbtFN7A?pwd3kp8 提取码&#xff1a;3kp8 带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主…

说一下 JVM 有哪些垃圾回收器?如何选择垃圾收集器?notify()和notifyAll()有什么区别?

说一下 JVM 有哪些垃圾回收器&#xff1f; 如果说垃圾收集算法是内存回收的方法论&#xff0c;那么垃圾收集器就是内存回收的具体实现。下图展示了 7 种作用于不同分代的收集器&#xff0c;其中用于回收新生代的收集器包括 Serial 、 PraNew 、 Parallel Scavenge &#xf…

JSONObject.parseObject的使用-嵌套json

pom文件 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.54</version></dependency>具体代码 import com.alibaba.fastjson.JSONObject;public class JsonLearn {public static …