当前位置: 首页 > 知识库问答 >
问题:

前端 - 为什么在router文件夹下的index.js文件里面,一开始的时候需要注册VueRouter?

王季萌
2024-01-22

为什么在router文件夹下的index.js文件里面,一开始的时候需要注册VueRouter?

import Vue from "vue";import VueRouter from "vue-router";// 为什么需要在这里注册一次VueRouter?Vue.use(VueRouter);

最后不是会把router实例对象export出去然后在main.js里面Vue.use(router)吗?
为什么要注册两次?

共有4个答案

吕利
2024-01-22

第一次注册是为了让 Vue 应用能够使用 Vue Router 的功能,第二次注册是告诉应用使用哪个具体的路由器实例来管理路由。

翟嘉志
2024-01-22

怎么感觉你是把 Vue2 跟 Vue3 的两处 use 的写法给混在一起了呢……

Vue2 里:

Vue.use(VueRouter); // 全局的 useconst router = new VueRouter();new Vue({ router });

Vue3 里:

const router = createRouter();createApp().use(router); // 实例的 use

都是只有一次 use,为啥会有两次?


P.S. 2 里的 use 是全局的,所有 Vue 实例都注入了 VueRouter(但它们可以使用不同的配置项);3 里 use 是单个实例的,每个 Vue 实例可以自己决定是否注入 VueRouter。

尤俊誉
2024-01-22

不是只需要在 router/index.js 里面注册一次就可以了吗,然后再在 main.js 中实例化 Vue 的时候挂载一下 router 就好了。

不需要使用 Vue.use() 注册两次啊。你把 main.js 里面的 Vue.use(router) 删了,只是保留 router/index.js 里面的 Vue.use 也是可以的。

不过注册放到 router/index.js 里面是为了统一,就看个人的开发习惯了。你也可以单纯只是在 router/index.js 里面维护路由表和守卫,然后在 main.jsimport 然后注册和挂载 vue-router

谯灿
2024-01-22

在router文件夹下的index.js文件中,一开始的时候需要注册VueRouter,是为了确保VueRouter能够被正确地使用和实例化。

VueRouter是Vue.js的官方路由管理器,用于构建单页面应用。在Vue应用中使用路由,需要先安装并注册VueRouter。在index.js文件中,通过import语句导入VueRouter,并使用Vue.use(VueRouter)来注册VueRouter插件。

注册VueRouter的目的是为了在Vue应用中全局地启用路由功能。通过注册VueRouter,你可以在应用中使用this.$router来访问路由实例,并在组件中定义路由组件、路由参数、路由守卫等。

而在main.js文件中再次使用Vue.use(router),是为了将自定义的router实例挂载到Vue应用上。这是因为在创建router实例时,可能需要一些额外的配置选项,如添加路由守卫、定义路由参数等。将这些配置应用到router实例上后,再将该实例挂载到Vue应用上,以便在整个应用中访问和使用路由功能。

因此,虽然看起来像是在两个地方都注册了VueRouter,但实际上它们的作用是不同的。在index.js文件中注册VueRouter是为了启用路由功能,而在main.js文件中再次使用Vue.use(router)是为了挂载自定义的router实例。

 类似资料:
  • 自从我将ADT从16更新到18(强制Proguard从4.6更新到4.8),Proguard的行为非常怪异(而且前后不一致?)。 最新的此类问题是,当我尝试导出已签名(发布)的APK时,我收到以下错误: 我确实注意到在proguard.cfg中添加的建议,但是我以前从来不需要这样做(我没有改变我的代码中的任何东西,我所做的只是将ProGuard从4.6更新到4.8)。这是否意味着我的开发环境配置有

  • 问题内容: 我在这里阅读了一些有关每个java .class 文件开头的幻数的文章,并想知道 为什么 需要它- 此标记的目的是什么? 还需要吗?还是现在只是为了向后兼容? 找不到可以回答这个问题的帖子-我也没有在Java 规范中看到答案 问题答案: 幻数基本上是文件格式的标识符。例如,JPEG总是以FFD8开头。Java本身并不需要,它仅有助于识别文件类型。您可以在这里阅读更多有关幻数的信息。

  • 问题内容: 我对JAX-WS进行了概述,并注意到了(和)的一些引用。 在什么情况下需要?(我认为JSR 109服务器?!) 问题答案: 是使用SUN的参考实现将Web服务作为标准存档部署在非Java EE5 Servlet容器上时所需的专有部署描述符。 Sun的RI 用作servlet上下文事件的侦听器和调度程序servlet。两者都必须在中声明。然后需要该文件为定义Web服务端点,以使其知道必须

  • 问题内容: 我之前已经制作过Bash脚本,它们运行良好,没有开始的情况。 放入它有什么意义?事情会有所不同吗? 另外,您如何发音?我知道这发音为“砰”。 怎么发音? 问题答案: 这是一个约定,因此* nix shell知道要运行哪种解释器。 例如,ATT的较旧版本默认为 sh (Bourne shell),而BSD的较旧版本默认为 csh (C shell)。 即使在今天(大多数系统都运行bash

  • 我们经常看到api的描述文件都用.rst结尾: 请问, .rst 文件一般是什么文件?