单页面路由跳转之hash模式

这篇具有很好参考价值的文章主要介绍了单页面路由跳转之hash模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

hash模式

hash模式主要通过监听URL地址的哈希值的变化来实现页面更新文章来源地址https://www.toymoban.com/news/detail-719973.html

function routeHandle() {
  let appElm = document.querySelector('#app')
  let hash = window.location.hash.slice(1)

  switch (hash) {
    case '':
    case '/':
    case '/home':
      appElm.innerHTML = `
        <h1>Home</h1>
        <button id="toListBtn">to list</button>
      `
      bindEvent()
      break
    case '/list':
      appElm.innerHTML = `
        <h1>List</h1>
        <button id="toHomeBtn">to home</button>
      `
      bindEvent()
      break
    default:
      appElm.innerHTML = `
        <h1>404</h1>
      `
      break
  }
}

window.addEventListener('hashchange', routeHandle, false)

完整代码

<body>
  <div id="app"></div>
</body>
function routeHandle() {
  let appElm = document.querySelector('#app')
  let hash = window.location.hash.slice(1)

  switch (hash) {
    case '':
    case '/':
    case '/home':
      appElm.innerHTML = `
        <h1>Home</h1>
        <button id="toListBtn">to list</button>
      `
      bindEvent()
      break
    case '/list':
      appElm.innerHTML = `
        <h1>List</h1>
        <button id="toHomeBtn">to home</button>
      `
      bindEvent()
      break
    default:
      appElm.innerHTML = `
        <h1>404</h1>
      `
      break
  }
}

function toListBtnHandle() {
  window.location.hash = '#/list'
}

function toHomeBtnHandle() {
  window.location.hash = '#/'
}

function bindEvent() {
  let toListBtnElm = document.querySelector('#toListBtn')
  let toHomeBtnElm = document.querySelector('#toHomeBtn')

  toListBtnElm && toListBtnElm.addEventListener('click', toListBtnHandle, false)
  toHomeBtnElm && toHomeBtnElm.addEventListener('click', toHomeBtnHandle, false)
}

window.addEventListener('hashchange', routeHandle, false)

;(() => {
  routeHandle()
})()

到了这里,关于单页面路由跳转之hash模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 「Vue|网页开发|前端开发」02 从单页面到多页面网站:使用路由实现网站多个页面的展示和跳转

    本文主要介绍如何使用路由控制来实现将一个单页面网站扩展成多页面网站,包括页面扩展的逻辑,vue的官方路由vue-router的基本用法以及扩展用法 「Vue|网页开发|前端开发」01 快速入门:快速写一个Vue的HelloWorld项目 我们在进行网站开发的时候,大多数都是需要有多个页面

    2024年02月11日
    浏览(37)
  • this.$router.push点了后hash地址改变了,页面却不跳转

    今天在写代码的时候,爆出了一个问题,在我使用this.$router.push的时候,hash地址改变了,但是页面却不发生跳转。 地址从admin跳转到了login后,仍然没有发生改变  van-button type=\\\"success\\\" class=\\\"\\\" @click=\\\"reset\\\"重置/van-button   van-button type=\\\"primary\\\" class=\\\"\\\" @click=\\\"login\\\"登录/van-button  给它绑

    2023年04月08日
    浏览(27)
  • Vue 路由:Hash 模式与 History 模式详解

            Vue 是一款流行的前端框架,它提供了强大的路由功能,用于构建单页应用程序(SPA)。Vue 路由有两种模式:Hash 模式和 History 模式。本文将详细介绍这两种模式的原理、特点和使用场景,帮助你在 Vue 项目中选择适合的路由模式。         Hash 模式是 Vue 路由的

    2024年02月06日
    浏览(42)
  • JavaScript页面怎么跳转

    在JavaScript中,可以使用 window.location 对象来实现页面跳转。 window.location 对象包含了当前页面的URL信息,可以通过修改它的属性来实现页面跳转。 以下是一些常见的页面跳转方式: 使用 window.location.href 属性来跳转到一个新的URL: 使用 window.location.replace() 方法来跳转到一个新

    2024年02月10日
    浏览(38)
  • 路由的hash和history模式的区别

    目录 ✅ 路由模式概述 一. 路由的hash和history模式的区别 1. hash模式 2. history模式 3. 两种模式对比 二. 如何获取页面的hash变化 单页应用是在移动互联时代诞生的,它的目标是不刷新整体页面,通过地址栏中的变化来决定内容区域显示什么内容。 要达成这个目标,我们要用到前

    2024年02月14日
    浏览(29)
  • vue3切换路由模式——Hash 、histoary

    1、history模式 使用createWebHistory 2、hash模式 使用createWebHashHistory 综上所述: history 对应 createWebHistory hash 对应 createWebHashHistory

    2024年02月02日
    浏览(34)
  • [HTML]Web前端开发技术11(HTML5、CSS3、JavaScript )页面布局设计 “三行模式”或“三列模式”“三行二列”“三行三列”模式 多行多列复杂模式水平导航菜单——喵喵画网页

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 页面布局设计 “三行模式”或“三列模式” “三行二列”、“三行三列”模式 多行多列复杂模式 导

    2024年02月02日
    浏览(46)
  • vue路由的两种模式 hash与history

    Vue 路由是 Vue.js 框架提供的一种机制,用于实现单页面应用(Single-Page Application,简称 SPA)中的前端路由功能。它允许通过定义不同的路由路径和对应的组件,来管理应用程序中不同页面或视图的展示和切换。 Vue 路由使用了浏览器的 History API 或 hash(#)来实现路由导航。通

    2024年02月10日
    浏览(40)
  • vue3如何切换hash/history两种路由模式

    本文介绍了在vue3中,如何使用history和hash两种路由模式的方法 1、history模式 使用createWebHistory 2、hash模式 使用createWebHashHistory 综上所述: history 对应 createWebHistory hash 对应 createWebHashHistory

    2024年02月13日
    浏览(31)
  • taro全局配置页面路由和tabBar页面跳转

    有能力可以看官方文档:Taro 文档 页面路由配置,配置在app.config.ts里面的pages里:   window用于设置小程序的状态栏、导航条、标题、窗口背景色,其配置项如下:   tabBar配置:如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以通过 tabBa

    2024年02月06日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包