美文网首页
利用pushState实现单页路由

利用pushState实现单页路由

作者: 瓜田猹 | 来源:发表于2018-02-06 16:57 被阅读18次

由于history提供的pushState, replaceState可以改变url,同时保持浏览器不刷新,并且通过popstate监听浏览器历史记录的方式,完成一系列的异步动作。

<body>
        <a data-href="/home">首页</a>
        <a data-href="/my">我的</a>
        <script type="text/javascript">
            //定义路由数组
            const Router = [];
            
            //添加路由方法
            const addRoute = (path = '',handle = () => {}) => {
                let obj = {
                    path,
                    handle
                }
                Router.push(obj)
            }
        
            //添加路由定义
            addRoute('/my',function(){  
                console.log("我的")
            })
    
            addRoute('/home',function(){
                console.log("首页")
            })
            
           //路由处理函数
            const routeHandle = (path) => {
                Router.forEach((item,index)=>{
                    if(item.path == path){
                        history.pushState(null, null, "#"+path);
                        item.handle.apply(null, [path]);
                        return true;
                    }
                })
                return false;
            }
            
            //点击a标签传递参数
            document.addEventListener("click",function(e){
                var path = e.target.dataset.href;
                if(path){
                    if(routeHandle(path)) {
                        //阻止默认行为
                        e.preventDefault();
                    }
                }       
            })
        </script>
    </body>

相关文章

  • 利用pushState实现单页路由

    由于history提供的pushState, replaceState可以改变url,同时保持浏览器不刷新,并且通...

  • react路由

    一、React路由: 实现单页应用的核心技术(单页应用 简称SPA) 路由原理参考资料: 二、React路由实现...

  • react路由

    一、React路由: 实现单页应用的核心技术(单页应用 简称SPA) 路由原理参考资料: 二、React路由实现有...

  • React路由

    一、React路由: 实现单页应用的核心技术(单页应用 简称SPA) 路由原理参考资料: 二、React路由实现有...

  • react路由

    一、React路由: 实现单页应用的核心技术(单页应用 简称SPA) 路由原理参考资料: 二、React路由实现有...

  • react路由

    一、React路由: 实现单页应用的核心技术(单页应用 简称SPA) 路由原理参考资料: 二、React路由实现有...

  • react路由

    一、React路由: 实现单页应用的核心技术(单页应用 简称SPA) 路由原理参考资料: 二、React路由实现有...

  • 前端路由的两种实现方式

    前端路由的两种实现方式: history.pushState()+popState事件pushState.html...

  • 单页路由实现方法

    刚看的,存储一下 1.单页路由是什么?(这是自己的理解) 单页路由就是只在不需要产生或重新加载新页面的前提下,完成...

  • 2018-08-16使用router-view同页面加载多路由

    描述:用路由方式实现单页面加载多页面,并且切换页面后状态还是保存的,类似于单页面实现标签页,切换标签页实现内容显示...

网友评论

      本文标题:利用pushState实现单页路由

      本文链接:https://www.haomeiwen.com/subject/omggzxtx.html