hash与history的介绍

hash
案例介绍

<body>
    <div id="app">
       <a href="#/home">首页</a>
       <a href="#/about">关于</a>

       <!-- 渲染到该div下面 -->
       <div id="router-view">

       </div>
    </div>
    <script>
          //获取view
          const routerView = document.getElementById("router-view");
          //每当hash值发生变化 就会触发hashchange是事件
          window.onhashchange = function(){
              //获取hash值
              let hash = location.hash;
              //根据hash值的不同 给用户显示不同的内容
              if(hash == "#/home"){
               routerView.innerHTML = "<h1>欢迎来到首页</h1>"
              }else if(hash == "#/about"){
                  routerView.innerHTML = "<h1>这是关于我们首页</h1>"

              }else{
                  routerView.innerHTML = "<h1>404 孩子找不到</h1>"
              }
          }
    </script>

history
案例介绍

<body>
    <div>
        <button onclick="linkTo(1)">首页</button>
        <button onclick="linkTo(2)">关于我们</button>
        <!-- 根据url的不同 在此div展示不同的内容 -->
        <div id="router-view"></div>
    </div>
    <script>
       const routerView = document.getElementById('router-view');
        //定义一个跳转事件
        function linkTo(id) {
            console.log(id);
            if (id == 1) {
                history.pushState({ a: 1 }, 'name1', '/home')
                routerView.innerHTML = "<h1>这是首页</h1>"
            } else if (id == 2) {
                history.pushState({ a: 1 }, 'name2', '/about')
                routerView.innerHTML = "<h1>这是关于我们</h1>"
            }
        }
    </script>
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue中,hashhistory是两种路由模式。引用\[1\]中提到,hash模式下,路由的hash值会出现在URL中的#号后面,但不会被包括在HTTP请求中,因此改变hash值不会重新加载页面。而history模式使用HTML5的history API,可以通过pushState和replaceState方法修改URL,而不会重新加载页面。引用\[2\]中也提到,hash模式是单页面应用的标配。而引用\[3\]中解释了hash的含义,它是URL中的#符号后面的内容,不会对后端产生影响。 所以,Vue中的hash模式和history模式是用来管理路由的两种不同方式。hash模式适用于单页面应用,不会重新加载页面,而history模式可以修改URL而不重新加载页面。具体选择哪种模式取决于项目的需求和后端的支持。 #### 引用[.reference_title] - *1* [vue中hashhistory区别](https://blog.csdn.net/qq_51441779/article/details/125276706)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vue中hashhistory的区别](https://blog.csdn.net/weixin_46099005/article/details/118425889)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [vue中的historyhash](https://blog.csdn.net/qq_41022291/article/details/88684500)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值