全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

用director.js实现前端路由使用实例

director.js是什么?

理解:前端的route框架,director.js客户端的路由注册/解析器,在不刷新的情况下,利用“#”号组织不同的URL路径,并根据不同的URL路径进行不同的方法调用。意思就是有什么样的路径就有什么样的方法。

场合:客户端浏览器和node.js的服务器应用。非常适合用来开发不需要刷新的单页面应用程序以及node.js应用。

兼容性:不依赖与任何库。例如jquery等。但它又和jquery能很好的融合在一起;

客户端的路由:

客户端的路由 (也称为哈希路由) 允许您指定一些关于使用URL应用状态的信息,当用户指定固定的URL,进行相应的页面显示。

简单例子

1. 单独使用

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>A Gentle Introduction</title>
  <script
   src="https://rawgit.com/flatiron/director/master/build/director.min.js">
  </script>
  <script>
   var author = function () { console.log("author"); };
   var books = function () { console.log("books"); };
   var viewBook = function (bookId) {
    console.log("viewBook: bookId is populated: " + bookId);
   };
   var routes = {
    '/author': author,
    '/books': [books, function() {
     console.log("An inline route handler.");
    }],
    '/books/view/:bookId': viewBook
   };
   var router = Router(routes);
   router.init();
  </script>
 </head>
 <body>
  <ul>
   <li><a href="#/author">#/author</a></li>
   <li><a href="#/books">#/books</a></li>
   <li><a href="#/books/view/1">#/books/view/1</a></li>
  </ul>
 </body>
</html> 

2当与jquery相结合

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>A Gentle Introduction 2</title>
  <script
   src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js">
  </script>
  <script
   src="https://rawgit.com/flatiron/director/master/build/director.min.js">
  </script>
  <script>
  $('document').ready(function() {
   //
   // create some functions to be executed when
   // the correct route is issued by the user.
   //
   var showAuthorInfo = function () { console.log("showAuthorInfo"); };
   var listBooks = function () { console.log("listBooks"); };
   var allroutes = function() {
    var route = window.location.hash.slice(2);
    var sections = $('section');
    var section;
    section = sections.filter('[data-route=' + route + ']');
    if (section.length) {
     sections.hide(250);
     section.show(250);
    }
   };
   //
   // define the routing table.
   //
   var routes = {
    '/author': showAuthorInfo,
    '/books': listBooks
   };
   //
   // instantiate the router.
   //
   var router = Router(routes);
   //
   // a global configuration setting.
   //
   router.configure({
    on: allroutes
   });
   router.init();
  });
  </script>
 </head>
 <body>
  <section data-route="author">Author Name</section>
  <section data-route="books">Book1, Book2, Book3</section>
  <ul>
   <li><a href="#/author">#/author</a></li>
   <li><a href="#/books">#/books</a></li>
  </ul>
 </body>
</html> 

Director支持commond的书写方式

例子如下:

 var director = require('director');
 var router = new director.cli.Router();
 router.on('create', function () {
  console.log('create something');
 });
 router.on(/destroy/, function () {
  console.log('destroy something');
 });
 // You will need to dispatch the cli arguments yourself
 router.dispatch('on', process.argv.slice(2).join(' ')); 



初始化及路由器的注册

 var router = Router(routes); 

另外,构造方法中传入的routes参数是一个路由对象,它是一个具有键值对结构的对象,可以被多层的嵌套。键对对应的URL中传入的路径,一般一个键值对应按照分割符切割后的某一部分;而键值对的值对应的该路径的需要触发的回调函数名。回调函数要在路由表对象使用前先声明,否则js会报错。

另外,回调函数除非特殊情况,一般不推荐使用匿名函数,请尽量先声明后使用。

   var routes = {
  '/dog': bark,  
  '/cat': [meow, scratch]
 }; 

这里的的url是#dog和#cat

声明Router对象后,需要调用init()方法进行初始化,如:

router.init(); 

路由的事件

路由事件是路由注册表中一个有固定命名的属性,是指当路由方法router.dispatch()被调用时,路由匹配成功的时定义的需要触发的回调方法(允许定义多个回调方法)。上文即时注册功能里的"on"方法就是一个事件。具体信息如下:  

on :当路由匹配成功后,需要执行的方法

before:在触发“on”方法之前执行的方法

仅在客户端有效的方法:

after:当离开当前注册路径时,需要执行的方法

once: 当前注册路径仅执行一次的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# director.js  # 前端路由  # 路由  # 默认路由  # director.js实现前端路由使用实例  # vue.js使用watch监听路由变化的方法  # VueJs路由跳转——vue-router的使用详解  # JS实现简单路由器功能的方法  # AngularJS路由实现页面跳转实例  # AngularJS 路由详解和简单实例  # react-router JS 控制路由跳转实例  # 使用AngularJS对路由进行安全性处理的方法  # AngularJS监听路由的变化示例代码  # JS实现前端路由功能示例【原生路由】  # 回调  # 客户端  # 键值  # 是一个  # 很好  # 多个  # 就有  # 不需要  # 是指  # 推荐使用  # 它是  # 要在  # 报错  # 注册表  # 前先  # 大家多多  # 它又  # 应用程序  # 不依赖  # 情况下 


相关文章: 如何在阿里云高效完成企业建站全流程?  小建面朝正北,A点实际方位是否存在偏差?  建站之星安装模板失败:服务器环境不兼容?  大连网站设计制作招聘信息,大连投诉网站有哪些?  自助网站制作软件,个人如何自助建网站?  视频网站制作教程,怎么样制作优酷网的小视频?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  寿县云建站:智能SEO优化与多行业模板快速上线指南  如何选择建站程序?包含哪些必备功能与类型?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  建站之星免费版是否永久可用?  临沂网站制作企业,临沂第三中学官方网站?  如何选择高效响应式自助建站源码系统?  常州自助建站费用包含哪些项目?  建站VPS推荐:2025年高性能服务器配置指南  开源网站制作软件,开源网站什么意思?  行程制作网站有哪些,第三方机票电子行程单怎么开?  如何快速搭建个人网站并优化SEO?  网站图片在线制作软件,怎么在图片上做链接?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  微信推文制作网站有哪些,怎么做微信推文,急?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  如何通过VPS建站无需域名直接访问?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何快速搭建高效WAP手机网站?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  建站之星代理商如何保障技术支持与售后服务?  如何在七牛云存储上搭建网站并设置自定义域名?  如何在建站之星绑定自定义域名?  如何用美橙互联一键搭建多站合一网站?  如何通过远程VPS快速搭建个人网站?  如何在阿里云虚拟服务器快速搭建网站?  广德云建站网站建设方案与建站流程优化指南  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  建站之星如何快速生成多端适配网站?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  如何通过虚拟机搭建网站?详细步骤解析  建站之星后台管理:高效配置与模板优化提升用户体验  如何在阿里云ECS服务器部署织梦CMS网站?  网站制作价目表怎么做,珍爱网婚介费用多少?  如何在Windows环境下新建FTP站点并设置权限?  Swift中swift中的switch 语句  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  公司网站设计制作厂家,怎么创建自己的一个网站?  网站制作知乎推荐,想做自己的网站用什么工具比较好?  高端建站三要素:定制模板、企业官网与响应式设计优化  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  北京企业网站设计制作公司,北京铁路集团官方网站?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  如何在阿里云完成域名注册与建站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。