vue运行后为什么有#

worktile 其他 11

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Vue是一种用于构建用户界面的 JavaScript 框架。在 Vue 中,当我们运行应用时,有时会在 URL 中看到一个 "#" 符号。这是因为 Vue 使用了路由的方式来管理应用的不同页面和组件。

    在单页面应用(Single Page Application)中,页面的切换过程是通过 JavaScript 动态地改变视图内容,而不是通过传统的页面加载和刷新。这意味着在 URL 中没有对应的页面地址。为了能够管理应用的状态和路由,Vue 使用了一个称为“哈希模式”(Hash Mode)的路由模式。

    哈希模式的路由使用 URL 中的 "#" 符号来标记不同的路由路径。当应用加载时,URL 中的哈希部分指示 Vue 去渲染对应的组件或页面。例如,当我们访问网站的根路径时,URL 可能是类似于 "https://www.example.com/#/" 的形式,在这个 URL 中,"#" 后面的部分就是 Vue 的路由路径。

    使用哈希模式的好处是,它允许我们在不需要服务器端支持的情况下进行路由管理。这也使得我们的应用可以在任何支持 JavaScript 的浏览器中运行,并且可以通过将应用部署到任意的静态服务器来进行发布。此外,哈希模式还可以通过监听 URL 的变化来自动更新应用的状态,从而实现前进、后退等导航功能。

    然而,为了使 URL 更加友好和符合传统的网站路径,Vue 还提供了另一种路由模式称为“历史模式”(History Mode)。历史模式使用了浏览器的 History API,可以在 URL 中隐藏掉 "#

    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Vue中,当页面被加载时,如果URL中包含了"#”,那么Vue会自动将URL中的“#”后的内容作为路由的哈希部分。这个路由的哈希部分通常被称为哈希路由,可以用来指定页面的某个特定位置。

    在Vue的路由中,哈希路由是一种常见的路由模式,被用来实现单页应用(SPA)中的页面切换和导航。当URL中的哈希路由发生改变时,Vue会根据新的哈希值自动更新页面,加载对应的组件和数据。

    #的作用是指定页面的锚点,将页面跳转到对应的元素位置。在页面加载时,如果URL中包含了哈希路由,Vue会自动寻找页面中与哈希路由相对应的元素,并将其滚动到可见区域。

    通过使用哈希路由,可以在不刷新页面的情况下实现页面之间的导航和跳转。这种方式对于开发单页应用来说非常方便,可以提供流畅的用户体验,同时也能使页面更加轻量化,减少服务器的负载。

    此外,Vue还提供了其他路由模式,如历史模式和抽象模式,可以根据具体的需求选择适合的模式。但在某些情况下,如需要兼容性或与后端API、服务器配置等的兼容性问题时,使用哈希路由是一种比较常见且稳定的选择。

    总结起来,Vue运行后会自动将URL中的“#”后的内容作为哈希路由,用于实现单页应用中的页面切换和导航,以及页面滚动到指定位置的功能。这种方式可以提供更流畅的用户体验,同时也能减轻服务器的负载。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Vue中,当页面加载完毕后,URL地址栏中会出现一个#符号。这是因为Vue使用了一种称为“哈希模式”的路由方式。

    为了解释为什么URL中有#符号,我们需要首先了解两种路由模式:历史模式和哈希模式。

    1. 历史模式(history mode):
      历史模式是HTML5新推出的一种路由模式。在这种模式下,Vue会使用history.pushState方法来修改URL,从而实现页面的切换。这种模式下的URL是不带#的。

    2. 哈希模式(hash mode):
      哈希模式是Vue的默认路由模式。在这种模式下,Vue会使用window.location.hash来改变URL,将URL的改变保存在浏览器的锚点部分(即#后面的内容),从而实现页面的切换。这种模式下的URL总是包含#符号。

    为什么Vue默认使用哈希模式呢?这是因为哈希模式有以下几个优点:

    1. 兼容性好:哈希模式不会对旧版浏览器和服务器造成影响,可以放心使用。
    2. 简单易用:哈希模式的实现非常简单,无需对服务器进行特殊配置。
    3. 部署方便:哈希模式的代码可以放在任何地方,不需要服务器进行配置。

    虽然哈希模式有以上几个优点,但也存在一些缺点:

    1. URL不够美观:哈希模式的URL中包含#符号,对于用户来说不够美观,不易记忆。
    2. 不利于SEO:搜索引擎爬虫很难解析带有#符号的URL,因此哈希模式对SEO不友好。

    如果你使用了Vue Router,并且不希望URL中带有#符号,可以通过使用历史模式来解决。只需在Vue Router的创建时传入一个mode参数即可,如下所示:

    const router = new VueRouter({
      mode: 'history',
      routes: [...]
    })
    

    使用历史模式后,URL将不再带有#符号。但需要注意的是,在使用历史模式时,需要在服务器上进行相应的配置,以确保页面刷新时能够正确地显示应用程序的页面。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部