Vue3 自动生成路由:根据views文件夹里的Vue文件创建路由配置
"Vue3 自动生成路由:根据views文件夹里的Vue文件创建路由配置" \n\n在Vue 3中,可以使用Vue Router来实现根据views文件夹里的Vue文件自动生成路由。不需要额外安装插件,Vue Router是Vue官方提供的路由库。\n\n首先,需要在项目中安装Vue Router:\n\n\n npm install vue-router@next\n\n\n然后,在项目的src目录下创建一个router文件夹,然后在该文件夹下创建一个index.js文件。\n\n在index.js文件中,可以编写如下代码来自动生成路由:\n\njavascript\n import { createRouter, createWebHistory } from 'vue-router'\n \n const routes = []\n const router = createRouter({\n history: createWebHistory(),\n routes\n })\n \n // 自动导入views文件夹下的所有Vue文件\n const modules = import.meta.glob('../views/**/*.vue')\n Object.keys(modules).forEach(key => {\n const name = key.match(/\.\/(.*)\.vue$/)[1]\n routes.push({\n path: '/' + name.toLowerCase(),\n component: modules[key]\n })\n })\n \n export default router\n\n\n上述代码中,使用了import.meta.glob来自动导入views文件夹下的所有Vue文件,并将其添加到路由配置中。\n\n最后,在main.js文件中使用该路由配置:\n\njavascript\n import { createApp } from 'vue'\n import App from './App.vue'\n import router from './router/index.js'\n \n createApp(App)\n .use(router)\n .mount('#app')\n最后报错了{}.glob is not a function内容:在Vue 3中,`import.meta.glob`是一个新的特性,用于在构建时动态地导入模块。但是,由于`import.meta.glob`目前还不是标准的JavaScript语法,因此在普通的JavaScript文件中无法直接使用。\n\n解决这个问题的方法是使用Vue CLI提供的插件`@rollup/plugin-replace`,它可以在构建时将`import.meta.glob`替换为实际的值。\n\n首先,需要在项目中安装`@rollup/plugin-replace`插件:\n\n\n npm install --save-dev @rollup/plugin-replace\n\n\n然后,在项目的根目录下创建一个`rollup.config.js`文件,并添加以下内容:\n\njavascript\n import replace from '@rollup/plugin-replace'\n \n export default {\n // ...\n plugins: [\n replace({\n 'import.meta.glob': 'non_webpack_require'\n })\n ]\n }\n\n\n接下来,需要调整`router/index.js`文件的代码,将`import.meta.glob`替换为`__non_webpack_require__`:\n\njavascript\n import { createRouter, createWebHistory } from 'vue-router'\n \n const routes = []\n const router = createRouter({\n history: createWebHistory(),\n routes\n })\n \n // 自动导入views文件夹下的所有Vue文件\n const modules = non_webpack_require.glob('../views/**/.vue')\n Object.keys(modules).forEach(key => {\n const name = key.match(/./(.).vue$/)[1]\n routes.push({\n path: '/' + name.toLowerCase(),\n component: modules[key].default\n })\n })\n \n export default router\n```\n\n通过以上步骤,就可以在Vue 3中根据views文件夹里的Vue文件自动生成路由了。\n
原文地址: http://www.cveoy.top/t/topic/p9Zb 著作权归作者所有。请勿转载和采集!