动态生成路由
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