动态生成路由

const routesContext = require.context('../views', true, /\.vue$/);

require.context方法来动态地加载指定目录下的所有Vue文件

const routes = routesContext.keys().map(key => {
  const route = routesContext(key).default;
  return {
    path:`/${ key.split("/")[1]}`,    name: route.name,
    component: route
  };
});

遍历目录数据数组,拼接成route需要的形式

  const route = routesContext(key).default;

从模块对象中获取Vue组件的定义。具体来说,它做了以下几件事情:

routesContext(key):调用routesContext函数,传入文件名(key)作为参数。这个函数会返回一个模块对象,这个模块对象包含了对应Vue文件的内容。

.default:从模块对象中获取default属性。在Vue组件中,default属性用于导出组件的定义。因此,routesContext(key).default就是获取到Vue组件的定义。

const route = ...:将获取到的Vue组件的定义赋值给route变量。

这样,route变量就包含了Vue组件的定义,可以用于后续的操作,比如创建路由、渲染组件等。


动态生成路由
https://halo.jiangling.site/archives/dynamic-router
作者
你的降灵
发布于
2025年07月12日
许可协议