svelte+vite使用import.meta.glob


前言

在svelte+vite搭建的项目中,使用vite的import.meta.glob来实现动态注册模块路由。项目中使用的路由为svelte-spa-router。

svelte-spa-router具体用法请看https://github.com/ItalyPaleAle/svelte-spa-router

该项目使用js语言,使用ts语言的伙伴请参考,同时该文章也参考了以下文章https://blog.csdn.net/QQ_Empire/article/details/126308587


一、官方文档

https://cn.vitejs.dev/guide/features.html#glob-import

二、使用步骤

1.模块结构

在这里插入图片描述

一个文件夹代表一个模块,模块中的js文件为当前模块的路由配置,svelte文件为当前模块的页面。index.js中使用import.meta.glob。


2.模块中的路由文件

以上图的chat.js为例

import chatSvelte from "./chat.svelte";
const routes = {
    '/chat/:uid/:username': chatSvelte,

}
export default routes;

3.使用import.meta.glob

const metaRouters = import.meta.glob("./modules/**/*.js", {
    eager: true
});
export const routerArray = [];
let routes = {};
Object.keys(metaRouters).forEach((item) => {
    Object.keys(metaRouters[item]).forEach(key => {
        routerArray.push(metaRouters[item][key])
        routes = Object.assign(metaRouters[item][key],routes)
    })
});
export default routes;

4. 打印routes

在这里插入图片描述


5.在app.svelte中引入routes

<script>
  import Router from "svelte-spa-router";
  import routes from "./routes/index";
</script>

<main>
  <Router {routes} />
</main>


总结

记录一下如何解析import.meta.glob所获取的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值