zoukankan      html  css  js  c++  java
  • js还原底层简单的history路由

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>history route</title>
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.slim.js"></script>
    </head>
    <body>
        <ul>
            <li>电影</li>
            <li>影院</li>
        </ul>
        <div id='content'></div>
        
        <script>
            let comp = [
                {
                    path:'/movie',
                    component:'<div>comp1</div>'
                },
                {
                    path:'/test',
                    component:'<div>comp2</div>'
                }
            ]
            // 给li标签添加点击事件
            $('li').on('click',function() {
                let {path,component} = comp[$(this).index()]
                history.pushState({id:0},'movie',path)
                render(component)
                // 拿到参数
                let state = history.state
                console.log(state);
            })
    
            function render(component){
                $('#content').html(component)
            }
    
            // 监听hash是否发生变化,截取变化的长度对比然后根据结果操控dom
            $(window).on('load',()=>{
                history.pushState({id:0},'movie111','/movie')
                render(comp[0].component)
            })
    
            // 只能检测到前进后退 
            $(window).on('popstate',()=>{
                // 拿到参数
                let state = history.state
                console.log(state);
                let pathname = location.pathname
                let {component} = comp.find(v=>v.path === pathname)
                render(component)
            })
        </script>
    </body>
    </html>
    
  • 相关阅读:
    SQL 学习之路 (一)
    简单、易懂、通用的微信号、二维码轮播js
    本地phpstudy 新建站点运行步骤
    react-native 项目环境搭建
    JavaScript与DOM(下)
    JavaScript与DOM(上)
    ThisYes,this!
    编写高质量的JavaScript代码的基本要点
    变量对象(Variable Object)
    JavaScript核心
  • 原文地址:https://www.cnblogs.com/xujinglog/p/14677391.html
Copyright © 2011-2022 走看看