vite vue3 import.meta.glob动态路由

在Vite中使用Vue 3,你可以使用import.meta.glob来导入目录下的多个Vue组件,并自动生成路由。以下是一个简单的例子:

router/index.js


// router/index.js
import { createRouter, createWebHistory } from 'vue-router';
 
// 自动导入views目录下的所有.vue文件
const modules = import.meta.glob('/src/views/*.vue');
 
const routes = Object.keys(modules).map((path) => {
  const componentName = path.split('/').pop().split('.')[0];
  return {
    path: `/${componentName=='HomeView'?'/':componentName}`,
    component: modules[`${path}`].default || modules[`${path}`],
  };
});
 
const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes,
});
 
export default router;

App.vue

<script setup>
import { RouterLink, RouterView } from 'vue-router'
import HelloWorld from './components/HelloWorld.vue'
</script>

<template>
  <header>
    <img alt="Vue logo" class="logo" src="@/assets/logo.svg" width="125" height="125" />

    <div class="wrapper">
      <HelloWorld msg="You did it!" />

      <nav>
        <RouterLink to="/">Home</RouterLink>
        <RouterLink to="/AboutView">About</RouterLink>
      </nav>
    </div>
  </header>

  <RouterView />
</template>

<style scoped>
header {
  line-height: 1.5;
  max-height: 100vh;
}

.logo {
  display: block;
  margin: 0 auto 2rem;
}

nav {
  width: 100%;
  font-size: 12px;
  text-align: center;
  margin-top: 2rem;
}

nav a.router-link-exact-active {
  color: var(--color-text);
}

nav a.router-link-exact-active:hover {
  background-color: transparent;
}

nav a {
  display: inline-block;
  padding: 0 1rem;
  border-left: 1px solid var(--color-border);
}

nav a:first-of-type {
  border: 0;
}

@media (min-width: 1024px) {
  header {
    display: flex;
    place-items: center;
    padding-right: calc(var(--section-gap) / 2);
  }

  .logo {
    margin: 0 2rem 0 0;
  }

  header .wrapper {
    display: flex;
    place-items: flex-start;
    flex-wrap: wrap;
  }

  nav {
    text-align: left;
    margin-left: -1rem;
    font-size: 1rem;

    padding: 1rem 0;
    margin-top: 1rem;
  }
}
</style>

 

在上面的代码中,import.meta.glob用于获取/src/views/目录下所有的.vue文件。然后,我们遍历这些模块,通过它们的路径生成路由。这样,你只需要将组件放入views目录,无需手动向路由器添加每个组件。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【算法】01背包问题(代码+详解+练习题)

题目&#xff1a; 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi&#xff0c;价值是 wi。 求解将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。 输出最大价值。 输入格式 第一行两个整…

举个栗子!Tableau 技巧(268):折叠文本表的数据列

之前&#xff0c;我们分享过 &#x1f330; &#xff1a;灵活折叠文本表的多级数据行。陆续收到很多数据粉的反馈&#xff0c;想学习如何折叠文本表的数据列。 如下示例&#xff0c;假如将所有月份字段全部呈现出来&#xff0c;表格过长不利于查看数据。那么&#xff0c;我们就…

物联网网关和飞鸟物联平台如何助力其实现智能化升级,提升生产效率

随着工业4.0时代的到来&#xff0c;物联网技术逐渐成为推动工业转型升级的关键力量。物联网网关作为连接工业设备与网络的核心枢纽&#xff0c;在工业自动化、数据收集与分析等方面发挥着越来越重要的作用。本案例将围绕一家知名制造企业&#xff0c;展示物联网网关和飞鸟物联平…

职场人该如何学习使用AI大模型

【写在开篇&#xff1a;这是一篇针对非技术背景的职场人&#xff0c;学习和使用AI大模型的完全攻略。】 【今日份AI绘画&#xff1a;终身学习的职人】 非技术背景的职场人想要学习和使用AI大模型&#xff0c;可以遵循以下步骤&#xff1a; 1. 基础学习&#xff1a;首先&#…

Clickhouse-表引擎探索之MergeTree

引言 前文曾说过&#xff0c;Clickhouse是一个强大的数据库Clickhouse-一个潜力无限的大数据分析数据库系统 其中一个强大的点就在于支持各类表引擎以用于不同的业务场景。 MergeTree MergeTree系列的引擎被设计用于插入极大量的数据到一张表当中。数据可以以数据片段的形式一…

如何在Ubuntu系统部署Z-blog博客结合cpolar实现无公网IP访问本地网站

文章目录 1. 前言2. Z-blog网站搭建2.1 XAMPP环境设置2.2 Z-blog安装2.3 Z-blog网页测试2.4 Cpolar安装和注册 3. 本地网页发布3.1. Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 想要成为一个合格的技术宅或程序员&#xff0c;自己搭建网站制作网页是绕…

Huber Robust loss

Huber Loss&#xff08;Huber损失&#xff09;是一种用于回归任务的损失函数&#xff0c;它结合了均方误差&#xff08;MSE&#xff09;和绝对误差&#xff08;MAE&#xff09;的优点&#xff0c;在一定程度上抵抗了异常值的影响。Huber Loss 的数学表达式如下所示&#xff1a;…

【上海大学计算机组成原理实验报告】二、数据传送实验

一、实验目的 了解在模型机中算术、逻辑运算单元的控制方法。学习机器语言程序的运行过程。通过人工译码&#xff0c;加深对译码器基本工作原理的理解。 二、实验原理 根据实验指导书的相关内容&#xff0c;本次实验所要用的CP226实验仪在手动方式下&#xff0c;运算功能通过…

Matlab|配电网三相不平衡潮流计算【隐式Zbus高斯法】【可设定变压器数量、位置、绕组方式】

目录 主要内容 部分代码 结果一览 1.以33节点为例 2.以12节点系统为例 下载链接 主要内容 该模型基于隐式Zbus高斯法实现对配电网的三相不平衡潮流计算&#xff0c;通过选项可实现【不含变压器】和【含变压器】两种方式下的潮流计算&#xff0c;并且通过参数设置…

NLP技术大解析:人工智能应用从分词到情感分析的全面指南

自然语言处理&#xff0c;简称NLP&#xff0c;是人工智能领域中的一个重要分支&#xff0c;致力于让计算机理解和生成人类使用的自然语言。随着科技的飞速发展&#xff0c;NLP已经渗透到我们生活的方方面面&#xff0c;从智能语音助手到在线翻译工具&#xff0c;再到社交媒体的…

TikTok零播放?可能是海外代理IP的问题

在当今社交媒体的蓬勃发展中&#xff0c;TIKTOK作为一款备受欢迎的短视频平台&#xff0c;其直播功能也逐渐受到用户的青睐。然而&#xff0c;有时候跨境电商商家在进行直播时却面临着一个令人头疼的问题&#xff1a;没有观众。这时候&#xff0c;海外代理IP可能是一个潜在的原…

前端-深入探讨网络面试题

第一关 请求-文件、数据、连接 文件类的请求&#xff1a;加载HTMl、CSS 数据&#xff1a; ajax请求&#xff08;基于HTTP&#xff0c;HTTP基于TCP&#xff09;&#xff0c;如何建立连接的&#xff08;三次握手&#xff0c;为什么不是两次或者四次&#xff09;&#xff0c;sock…

C++ | Leetcode C++题解之第2题两数相加

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {map<int,int> a;//提供一对一的hashvector<int> b(2,-1);//用来承载结果&#xff0c;初始化一个大小为2&#xff0c;值为-1的容…

Qt 实现的万能采集库( 屏幕/相机/扬声器/麦克风采集)

【写在前面】 之前应公司需要&#xff0c;给公司写过一整套直播的库( 推拉流&#xff0c;编解码)&#xff0c;类似于 libobs。 结果后来因为没有相关项目&#xff0c;便停止开发&维护了。 不过里面很多有用的组件&#xff0c;然后也挺好用的&#xff0c;遂开源出来一部分。…

总结HTTPS加密流程

前言 本篇博客将介绍HTTPS加密的具体流程&#xff0c;坐好板凳发车啦~~ 一.HTTPS是什么 HTTPS也是一个应用层协议&#xff0c;是在HTTP协议的基础上引入了一个加密层 HTTP协议内容都是按照文本的方式明文传输的&#xff0c;这就导致在传输的过程中可能有一些内容被篡改。 …

leetcode 热题 100(部分)C/C++

leetcode 热题 100 双指针 盛最多水的容器 【mid】【双指针】 思路&#xff1a; 好久没写代码sb了&#xff0c;加上之前写的双指针并不多&#xff0c;以及有点思维定势了。我对双指针比较刻板的印象一直是两层for循环i&#xff0c;j&#xff0c;初始时i,j都位于左界附近&…

集成百兆,千兆,万兆网络变压器等电子元器件的RJ45 Jack连接器在屏显控制系统中的应用

Hqst华轩盛(石门盈盛)电子导读&#xff1a;集成百兆&#xff0c;千兆&#xff0c;万兆网络变压器等电子元器件的RJ45 Jack连接器在屏显控制系统中的应用 一 ﹑集成百兆&#xff0c;千兆&#xff0c;万兆网络变压器等电子元器件的RJ45 Jack连接器在屏显控制系统中的应用前景 近年…

《Slime War: Idle Hero》

Slime War: Idle Hero 类型&#xff1a;Idle Arks 模拟经营 视角&#xff1a;2d 乐趣点&#xff1a;卡牌收集&#xff0c;战斗成长&#xff0c;家园建造&#xff0c;英雄培养 时间&#xff1a;2023-2024 个人职责&#xff1a; 1、参与原生DEMO研发制作 2、主导基础框架的讨论…

非关系型数据库之Redis配置与优化

一、关系数据库与非关系型数据库 1.1关系型数据库 关系型数据库是一个结构化的数据库&#xff0c;创建在关系模型&#xff08;二维表格模型&#xff09;基础上一般面向于记录。SQL语句&#xff08;标准数据查询语言&#xff09;就是一种基于关系型数据库的语言&#xff0c;用…