Vue3 or: Unknown variable dynamic import: ../views/的解决方案

这篇具有很好参考价值的文章主要介绍了Vue3 or: Unknown variable dynamic import: ../views/的解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

​编辑

错误信息

原来的代码

修改后的代码


 

Vue3 or: Unknown variable dynamic import: ../views/的解决方案,Vue,javascript,vue.js,javascript,前端

 

错误信息

vue-router.mjs:3451  Error: Unknown variable dynamic import: ../views/BlogGather/DetailsArticlePage/pc/DetailsArticlePage.vue
    at dynamic-import-helper:7:96
    at new Promise (<anonymous>)
    at default (dynamic-import-helper:6:12)
    at details.js?t=1681893616671:15:20
triggerError @ vue-router.mjs:3451
(匿名) @ vue-router.mjs:3173
Promise.catch(异步)
pushWithRedirect @ vue-router.mjs:3167
push @ vue-router.mjs:3099
fromDetail @ ArticleCard.vue:95
callWithErrorHandling @ runtime-core.esm-bundler.js:173
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js:182
invoker @ runtime-dom.esm-bundler.js:345
dynamic-import-helper:7  Uncaught (in promise) Error: Unknown variable dynamic import: ../views/BlogGather/DetailsArticlePage/pc/DetailsArticlePage.vue
    at dynamic-import-helper:7:96
    at new Promise (<anonymous>)
    at default (dynamic-import-helper:6:12)
    at details.js?t=1681893616671:15:20

原来的代码  

const path = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i) ? 'mobile/' : 'pc/'
console.log(path)
export const routes=[
    {
        name: "index",
        path: "/",
        component: ()=>import(`../views/BlogGather/IndexPage/${path}IndexPage.vue`),
        meta: {title: "博客"},
    },
    {
        name: "xq",
        path: "/DetailsArticlePage",
        component: import(`../views/BlogGather/DetailsArticlePage/${path}DetailsArticlePage.vue`),
        meta: {title: "详情页面"},
    },
];

这样的写法在Vue2中是可以正常运行的但是在Vue3中就不可以了的。

修改后的代码

const path = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i) ? 'mobile/' : 'pc/'
console.log(path)
let modules = import.meta.glob('../views/BlogGather/**/**/*.vue')
console.log(modules)
export const routes=[
    {
        name: "index",
        path: "/",
        component: ()=>import(`../views/BlogGather/IndexPage/${path}IndexPage.vue`),
        meta: {title: "博客"},
    },
    {
        name: "xq",
        path: "/DetailsArticlePage",
        component: modules[(`../views/BlogGather/DetailsArticlePage/${path}DetailsArticlePage.vue`)],
        meta: {title: "详情页面"},
    },
];

我们注意到,我们是先将所有的vue文件读取出来放到一个数组之中的。

然后再去数组中取值,这样才能动态的加载组件实现动态路由的效果。文章来源地址https://www.toymoban.com/news/detail-560841.html

到了这里,关于Vue3 or: Unknown variable dynamic import: ../views/的解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Visual Studio编辑器中C4996 ‘scanf‘: This function or variable may be unsafe.问题解决方案

    目录 ​编辑 题目:简单的a+b 1.  题目描述 2.  输入格式 3.  输出格式 4.  样例输入 5.  样例输出 6.  解题思路 7.  代码示例 8.  报错解决 方案一 方案二 方案三 方案四 总结 输入两个整数a和b,计算a+b的和 本题很简单,但是注意此题是多组测试数据,即需要不停的接收系统

    2024年02月03日
    浏览(51)
  • docker: Error response from daemon: unknown or invalid runtime name: nvidia 解决方案

    我们使用Docker的过程中往往需要使用 GPU ,于是需要安装NVIDIA Driver、NVIDIA Container Toolkit和CUDA Toolkit等工具。 如果你使用的是 Ubuntu 等Linux原生系统 + docker :你需要在 /etc/docker/daemon.json 中设置 default-runtime 为 nvidia ,然后重启 docker ,确保你启动了NVIDIA Container Toolkit。 但是如果

    2024年02月07日
    浏览(54)
  • vue路径component使用import的方式来写 component: () => import(‘@/views/order/orderDetail‘)

    以前老师教的一直是这种写法:  工作后突然看到这种写法,我蒙了  首先我们先来理解一下,路由文件里面. path里面其实就是url也就是我们写路径的,我们在网址栏所看到的. 而component则是我们所对应的页面组件.每个页面相当于一个组件.所以我们的页面的名字就是组件的名字.

    2023年04月08日
    浏览(75)
  • setup语法糖报错 vue-router.mjs:3451 TypeError: Failed to fetch dynamically imported module:

    当直接将setup写在script标签上 会报错 vue-router.mjs:3451 TypeError: Failed to fetch dynamically imported module: 这是setup语法糖导致的错误,此时就老老实实按照vue3原本的写法export default{xxxxxx}即可解决 vue3中setup语法糖写法: 原始正常写法: 改成原始写法后就不报错了!!!看来还是不能偷

    2024年02月12日
    浏览(39)
  • [plugin:vite:import-analysis] Failed to resolve import “@/views/Login.vue“ from “src\router\index.ts

    报错截图 报错原因是没有引入@相关的配置 先安装path模块 修改 vite.config.js 文件 在重新启动项目就可以了

    2024年02月14日
    浏览(45)
  • nginx: [emerg] unknown “connection_upgrade“ variable

    配置 “$connection_upgrade” 变量 连接升级通常与 WebSockets 结合使用。 在 nginx 中,我们可以根据 $http_upgrade 变量将 HTTP 连接升级为 WebSocket 连接。 我们可以使用 map 块在 nginx 中定义连接和 http 升级之间的依赖关系: vim nginx.conf 如果 Upgrade 标头设置为 ‘’,此 map 块告诉 nginx 正

    2024年02月13日
    浏览(59)
  • 亲测:nginx: [emerg] unknown “connection_upgrade” variable

    nginx启动或者重启提示信息如下: nginx: [emerg] unknown \\\"connection_upgrade\\\" variable nginx: configuration file /www/server/nginx/conf/nginx.conf test failed 在nginx配置文件http标签下添加如下几行: Ps:主配置文件yum安装默认路径为/etc/nginx/conf/nginx.conf

    2024年02月11日
    浏览(86)
  • vue3+vite中使用import.meta.glob

    前言:         在vue2的时候,我们一般引入多个js或者其他文件,一般使用  require.context 来引入多个不同的文件,但是vite中是不支持 require的,他推出了一个类似的功能,就是用import.meta.glob来引入多个,单个的文件。 vue2 中使用  require 来引入多个不同的js文件 1、引入 

    2024年02月15日
    浏览(50)
  • vue3+TS报错:不能将类型“unknown”分配给类型“string”(TS)

    vue3 + TS 项目中,编写路由文件使用 路由守卫 更改页面标题报错 TS 有更严格的代码检查,当赋值的变量类型不正确时即报错, 可以将鼠标移动到变量上查看类型 可以清楚看到 两个类型,一个是 string ,一个是 unknown ,故报错   可以通过 类型断言 或者 类型判断 进行处理

    2024年02月15日
    浏览(40)
  • vue3使用view-ui定制主题

    安装view-ui-plus、less、less-loader、style-resources-loader 在main.js(mian.ts)中引入viewUI主键和样式 在vite.config.js中配置css的loaderOptions 首先在项目中先建一个目录,比如  styles ,然后在 styles 下建立一个 less 文件  index.less ,并写入下面内容: 在main.js(mian.ts)中引入 ./styles/ index.le

    2023年04月09日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包