单页应用路由

81 阅读1分钟

利用hash值实现路由

hash路由是利用hash值实现界面切换。hash值是url地址#号后面的内容, 可以作为页面的锚点,实现一个页面不同锚点之间的跳转.例如: 当从hash值为#a的路径切换到hash值为#b的路径时,界面会从a切换到b。

import { createLoginPage,createHomePage } from './pages.js'
export const routes = [
    {
        path: 'login',
        page: createLoginPage(),
    },
    {
        path: 'home',
        page: createHomePage(),
    },
]

import f routes } from './js/routes.js'
/**
*添加路由,默认home
*/
const router = () => {
    const url = location.hash.slice(1) || 'login' //获取hash值
    const rootEle = document.body //路由输出根节点
    rootEle.innerHTML = '' //清空原内容
    const childEle = routes.find(item => item.path == url).page //查找路由组件
    //添加路由组件
    rootEle.appendChild(childEle)
}

router()//初始化

// hash路由切换监听, hash值变化触发
window.addEventListener('hashchange', router)