Javascript在前端实现了一个简单的路由实例。

Javascript在前端实现了一个简单的路由实例。
前言

前端路由是许多开源JS库框架支持,比如AngularJS,骨干,reactjs,所以on.front-end路由和路由都是后台所有交互和显示页面上减少服务器的请求,提高客户体验。越来越多的网站,尤其是Web应用程序,使用前端路由。

HTML

有一个导航菜单UL在页面和DIV #结果显示结果。当导航菜单点击,不同的结果将在#结果显示。
首页
产品
服务

Javascript

前端路由实现原理简单,在哈希表(你也可以使用历史API处理)为例,当URL散列的变化,触发hashchange注册回调回调对不同业务、不同内容的显示。
函数路由器(){
this.routes = { };
this.cururl =;

this.route =功能路径,回调){
这个路线{路径} =回调(功能){ } | |;
};

this.refresh =函数(){
this.cururl = location.hash.slice(1)| |;
这个路线{这cururl }();
};

this.init =函数(){
Window.addEventListener(载荷,this.refresh.bind(这),假);
Window.addEventListener('hashchange ',this.refresh.bind(这),假);
}
}
以上代码由系统路由器对象实现,主要提供三种方法

init侦听浏览器URL哈希更新事件。

当存储路由更新时,路由将回调存储到回调数组路由,回调函数将负责页面的更新。

刷新执行与当前URL相对应的回调函数,并更新页面。

路由器调用的方式如下:

单击触发URL的哈希更改并相应更新内容。运行后,你会发现背景颜色和内容将在#结果每次单击菜单改变。
新路由器();
R.init();
VaR既= document.getelementbyid('result);

r.route(功能){(/。
res.style.background = '蓝色';
res.innerhtml =这是网页
});
r.route( /产品的功能(){(){
res.style.background = 'orange;
res.innerhtml =这是产品页面;
});
r.route( /服务器功能(){(){
res.style.background =;
res.innerhtml =这是一个服务页面;
});
总结

以上是一个简单的前端路由实现。在实践中,哈希应该通过正则匹配来处理,以满足大量URL应用程序的需要,同时增加Ajax异步请求页面内容和其他功能。其他路由系统主要支持和优化自己的框架mechanisms.ok,本文研究的内容是。我希望它能给大家的学习工作带来一些帮助。如果有任何疑问,你可以留言。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部