当前位置: 首页 > wzjs >正文

h5短视频源码优化建议

h5短视频源码,优化建议,合肥做拼拼团网站的公司,建设网站要多少页面vue工程中路由导致的循环依赖问题 问题简述环境routerroutes 问题原因分析解决方案 问题简述 做oj系统过程中,前端vue工程中遇到报错 ReferenceError: can’t access lexical declaration ‘routes’ before initialization 环境 vitevue3router中使用外部引入的…

vue工程中路由导致的循环依赖问题

  • 问题简述
  • 环境
    • router
    • routes
  • 问题原因分析
  • 解决方案

问题简述

做oj系统过程中,前端vue工程中遇到报错
ReferenceError: can’t access lexical declaration ‘routes’ before initialization

环境

  • vite
  • vue3
  • router中使用外部引入的routes数组

router

import {createRouter, createWebHistory} from 'vue-router'
import { routes } from '@/router/routes'
import beforeGuard from '@/router/guard.ts'const router = createRouter({history: createWebHistory(),routes
})/*** 路由前置守卫*/
router.beforeEach(beforeGuard)export default router

routes

import HomeView from '@/views/baseView/HomeView.vue'
import type { RouteRecordRaw } from 'vue-router'
import { PermissionsEnum } from '@/enum/PermissionsEnum.ts'
import QuestionManager from '@/views/question/QuestionManager.vue'
import DoAnswer from '@/views/question/DoAnswer.vue'
import AnswerQuestion from '@/views/question/AnswerQuestion.vue'
import QuestionSubmitView from '@/views/question-submit/question-submit-view.vue'
import QuestionSubmitManager from '@/views/question-submit/question-submit-manager.vue'export const routes: RouteRecordRaw[] = [{path: '/',name: '首页',component: HomeView,meta: {permissions: [PermissionsEnum.UNLOGIN, PermissionsEnum.LOGIN],title: '首页',},},{path: '/doAnswer',name: '开始做题',component: DoAnswer,meta: {permissions: [PermissionsEnum.UNLOGIN, PermissionsEnum.LOGIN],title: '开始做题',},},{path: '/questionSubmitView',name: '做题记录',component: QuestionSubmitView,meta: {permissions: [PermissionsEnum.UNLOGIN, PermissionsEnum.LOGIN],title: '做题记录',},},{path: '/doAnswer/:questionId',name: '答题页面',component: AnswerQuestion,meta: {permissions: [],title: '答题中',hiddenInMenu: true,},{path: '/systemManager',name: '系统管理',component: QuestionSubmitManager,meta: {permissions: [PermissionsEnum.UNLOGIN, PermissionsEnum.LOGIN],title: '系统管理',},},{path: '/login',name: '登录',component: () => import('../views/login/LoginIndex.vue'),meta: {permissions: [],hiddenInMenu: true,},},{path: '/403',name: '403',component: () => import('../views/exception/403/index.vue'),meta: {permissions: [],hiddenInMenu: true,},},{path: '/404',name: '404',component: () => import('../views/exception/404/index.vue'),meta: {permissions: [],hiddenInMenu: true,},},{path: '/500',name: '500',component: () => import('../views/exception/500/index.vue'),meta: {permissions: [],hiddenInMenu: true,},},{path: '/:pathMatch(.*)*',redirect: '/404',meta: {hiddenInMenu: true,}},
]

问题原因分析

因为在DoAnswer中使用router跳转页面时使用 import router from ‘@/router’,导致产生循环依赖问题。即当router需要初始化时需要导入DoAnswer组件,但是DoAnswer组件中要使用路由,又需要从@/router中导入router实例,因此报错。

解决方案

在DoAnswer组件中使用 const user = useRouter() 方法获取路由实例对象

<script setup lang="ts">
import { onMounted, type Ref, ref } from 'vue'
import { useRouter } from 'vue-router'// 搜索表单Ref对象
const searchFormRef = ref()// 路由
const router = useRouter();
</script>
<template>
<button @click="router.push('/home')">跳转</button>
</template>
<style></style>
http://www.dtcms.com/wzjs/317850.html

相关文章:

  • 苹果手机浏览器移动网站日本比分预测最新分析
  • 三位效果网站模版武汉企业seo推广
  • 网站建设公司如何生存网站模板及源码
  • 做问卷用哪个网站好网站做优化
  • 方城网站设计今日资讯最新消息
  • 做我韩国连续剧网站网络营销成功的案例
  • 四大门户网站如何做百度搜索推广
  • 网站开发 混合式 数据库青岛网站设计公司哪家好
  • 怎么做网站推销自己的产品爱上链外链购买平台
  • 建设工程质量管理条例网站查询网入口
  • 中建建设银行网站2024年将爆发新瘟疫
  • 手机怎么发wordpressseo与sem的区别
  • 桂林做网站哪家好关键词排名查询官网
  • cdr做图时怎么找到网站的比较好的网站建设网站
  • 南宁青秀网站建设上海优化seo公司
  • 全国建筑资质查询网站大学生网络营销策划书
  • 相亲网站怎么做的湛江seo网站管理
  • 记事本做网站滚动条长沙网站推广有哪些啊
  • 香港做指数的网站品牌营销平台
  • 建设一个旅游网站必备的宁波seo专员
  • 淘宝客必须做网站吗灰色关键词排名方法
  • 免费网站建设必找186一6159一6345百度小说风云榜排名完结
  • 网站广告投放深圳企业网站制作公司
  • 做外贸网站挣钱吗怎么把广告发到各大平台
  • 郑州seo网站有优化seo服务指什么意思
  • 博彩导航网站怎么做合肥网络推广优化公司
  • 网站建设制作微商授权书关键词分析工具网站
  • 用rp怎样做网站百度做广告
  • 杭州pc网站开发公司有哪些软文什么意思范例
  • mac 搭建个人网站长沙网站推广服务公司