首页
学习
活动
专区
工具
TVP
发布

原生 js 实现一个前端路由 router

需求 因为我司的 H 5 的项目是用原生 js 写的,要用到路由,但是现在好用的路由都是和某些框架绑定在一起的,比如 vue-router ,framework7 的路由;但是又没必要为了一个路由功能而加入一套框架...实现原理 现在前端路由实现一般有两种,一种是 Hash 路由,另外一种是 History 路由。...现在的前端主流框架的路由实现方式都会采用 Hash 路由,本项目采用的也是。 当 hash 值发生改变的时候,我们可以通过 hashchange 事件监听到,从而在回调函数里面触发某些方法。 3....代码实现 3.1 简单版 - 单页面路由 先看个简单版的 原生 js 模拟 Vue 路由切换。 ?...js 实现路由的缓存功能是很难的,但像 vue-router 那种还好,因为有 vue 框架和虚拟 dom 的技术,可以保存当前页面的数据。

2.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

前端开发:vue路由前端路由的原理

现在mvvm框架已经火的不成样了,React、Angular和Vue.js的发布让前端工程化成为主流,大前端时代已经到来了,最近接触了vue的前端路由,闲来无事就开始琢磨源码,下面来说说前端路由的原理。...前端路由 现代前端开发中最流行的页面模型,莫过于SPA单页应用架构。...前端三驾马车Angular,Vue,React均基于此模型来运行的。SPA能够以模拟多页面应用的效果,归功于其前端路由机制。...值变化不会导致浏览器向服务器发出请求,而且hash改变会触发hashchange事件,浏览器的进后退也能对其进行控制,所以人们在 html5 的 history 出现前,基本都是使用 hash 来实现前端路由的.../ '#qq' window.addEventListener('hashchange', function(){ // 监听hash变化,点击浏览器的前进后退会触发 }) 下面我来简单实现一个前端路由的封装

94751

Vue前端路由

1、Vue路由路由的基本概念与原理。 答:1)、路由是一个比较广义和抽象的概念,路由的本质就是对应关系。 2)、在开发中,路由分为,后端路由前端路由。...4)、前端路由,根据不同的用户事件,显示不同的页面内容。本质就是用户事件与事件处理函数之间的对应关系。前端路由负责事件监听,触发事件后,通过事件函数渲染不同内容。...答:1)、后端路由的渲染,就叫做后端渲染(存在性能问题)。 2)、Ajax前端渲染,前端渲染提供性能,但是不支持浏览器的前进后退操作。...5)、在实现SPA过程中,最核心的技术点就是前端路由。 3、路由的基本概念与原理,实现简易前端路由。...答:1)、Vue Router路由管理器是和Vue.js的核心深度集成,可以非常方便的用于SPA应用程序的开发。Vue Router 是 Vue.js 官方的路由管理器。

1.3K10

React前端路由

前端路由的概念前端路由是一种在单页面应用中管理不同页面之间导航和渲染的机制。与传统的多页面应用不同,前端路由允许在同一个页面中切换不同的组件,而无需进行完整的页面刷新。...前端路由通常基于URL的路径来匹配和渲染不同的组件。当用户在应用程序中进行导航时,前端路由会根据URL的变化来决定要渲染的组件,并更新页面内容。...嵌套路由:支持嵌套的路由结构,使应用程序可以有多个层级的页面。路由保护:通过路由守卫或权限控制来限制访问某些页面。React中的前端路由库在React中,有许多第三方库可以帮助实现前端路由。...以下是一些常用的React前端路由库:React Router:React Router是React生态系统中最受欢迎的前端路由库之一。...Next.js:Next.js是一个流行的React框架,提供了内置的前端路由功能。它使用文件系统路由和自动代码拆分来简化路由配置和页面导航。

1.6K20

前端路由那些事

树酱希望将前端的乐趣带给大家 本文已收录 github.com/littleTreem… 喜欢就star 谈到路由,一般分为前端路由和后端路由两种,后端路由指的当用户通过浏览器切换不同URL时,都会向服务器发起资源请求...,服务器通过后端路由匹配之后根据不同URL返回不同页面,而前端路由则将浏览器与服务器交互(页面跳转的URL规则匹配)的任务交给前端来做 1.前端路由模式 目前单页应用(SPA)成为目前前端应用的主流...,而大型单页应用的一个大特征是,由前端路由来控制页面的跳转,通过url的切换,在不请求服务器的前提,更新页面视图,这里以vue-router为例分析,前端路由模式主要包括两种:hash模式和history...类的具体源码实现 点我到达火箭 1.2 history 模式 自HTML5新标准出台,pushState和replaceState是HTML5的新接口,通过这两个 API 可以改变 url 地址且不会发送请求,前端路由从此了多了另外一种模式...有兴趣Vue-router关于history类的具体源码实现 点我到达火箭 2.路由应用 聊聊vue-router的一些应用场景 2.1 路由拦截 路由拦截可以用来作为前端鉴权入口,比如判断是否是已登录状态

97230

什么是前端路由

前端路由在很多开源的js类库框架中都得到支持,如angularJS,Backbone,Reactjs等等。...以前路由都是后台做的,通过用户请求的url导航到具体的html页面,前端路由就是通过配置js文件,把这个工作拿到前端来做。...简单的说,路由是根据不同的 url 地址展示不同的内容或页面 2.前端路由 前端路由和后端的路由在实现技术上不一样,但是原理都是一样的。...3.前端路由的使用场景? 前端路由更多用在单页应用上, 也就是SPA, 因为单页应用, 基本上都是前后端分离的, 后端自然也就不会给前端提供路由。...4.前端路由优缺点 优点: 1.从性能和用户体验的层面来比较的话,后端路由每次访问一个新页面的时候都要向服务器发送请求,然后服务器再响应请求,这个过程肯定会有延迟。

1.7K110

前端路由实现方式

路由:根据不同的url地址,显示不同的页面或者更新局部视图,呈现出来不同的内容。前端路由的实现方式分为服务端,Hash,History三种常见的路由实现方式。...服务端 服务器端路由管理,常见的开发模式是前端根据url的不同,使用ajax发起异步请求,获取不同的页面资源,前端获取资源后更新页面。...后端路由处理,一般是基于前后端没有分离的项目,html和数据绑定发生在后端(后端渲染),有利于SEO,因为每次发送请求都需要获取资源,对服务器造成资源浪费,前端页面可能因为网速造成延迟,页面局部视图更新...前端路由需要实现一下: 根据不同的hash展示对应的页面 监听hash值的改变 保存当前url的请求状态或者参数(比如页面刷新和分享链接,别人可以获取同样的内容) 可以实现浏览器的前进后退功能 原理:...属性获取,当url的hash值发生变化,会触发window对象的hashchange事件,通过监听 hashchange 事件,操作 window.location.hash 属性可以实现 route.js

57810

前端自动生成路由

---- theme: channing-cyan 前言 在大前端的工程化趋势下,自动化也成为前端不可分离的一部分,自动化为我们日常开发中提高了不少效率且能少码不少代码,单配置一个json文件就可以生成一系列想要的代码是开发者的终极目标...自动生成路由 利用glup以及glup-rename来完成我们的自动化生成,实际上node也可以来完成,node作为前端工具来说是相当不错的,但我们这里主要叙述利用glup来完成。.../src/static/app/js/route/menus.json' // 定义输出目录 const MUNUS_DEST_PATH = '..../src/static/app/js/route/' 定义好模板后,我们利用through2来处理流,以及占位符来替换掉我们想要的路由。.../src/static/app/js/route/menus.json' const MUNUS_DEST_PATH = '.

1.2K20

前端路由那些事

树酱希望将前端的乐趣带给大家 本文已收录 github.com/littleTreem… 喜欢就star✨ 谈到路由,一般分为前端路由和后端路由两种,后端路由指的当用户通过浏览器切换不同URL时...,都会向服务器发起资源请求,服务器通过后端路由匹配之后根据不同URL返回不同页面,而前端路由则将浏览器与服务器交互(页面跳转的URL规则匹配)的任务交给前端来做 1.前端路由模式 目前单页应用(SPA...)成为目前前端应用的主流,而大型单页应用的一个大特征是,由前端路由来控制页面的跳转,通过url的切换,在不请求服务器的前提,更新页面视图,这里以vue-router为例分析,前端路由模式主要包括两种:hash...通过此事件的触发我们就可以清晰知道hash发生了什么变化 假设你浏览器访问的url地址是 http://127.0.0.1/#/test 那么通过 location.hash 获取的hash值为 #/test 导致路由的变化无非是三种情况

58831

Node.js 路由

我们要为路由提供请求的 URL 和其他需要的 GET 及 POST 参数,随后路由需要根据这些数据来执行相应的代码。...现在我们可以来编写路由了,建立一个名为 router.js 的文件,添加以下内容: router.js 文件代码: function route(pathname) { console.log("About...首先,我们来扩展一下服务器的 start() 函数,以便将路由函数作为参数传递过去,server.js 文件代码如下 server.js 文件代码: var http = require("http")...,使得路由函数可以被注入到服务器中: index.js 文件代码: var server = require("....如果现在启动应用(node index.js,始终记得这个命令行),随后请求一个URL,你将会看到应用输出相应的信息,这表明我们的HTTP服务器已经在使用路由模块了,并会将请求的路径传递给路由: $ node

2.2K10

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券