jQuery技术

时装版女装图片大全图片大全图片大全图片大全图片

字号+ 作者:H5之家 来源:H5之家 2018-02-14 15:25 我要评论( )

加肥加大女装批发市场,衣柜衣服图片女装图片大全图片,meeshe大码女装

时装版女装图片大全图片大全图片大全图片大全图片_给你的jQuery项目赋予Router技能吧

现在你不会React/Vue都不好意思说自己是前端,不过我相信很多前端项目还是基于jquery类库的传统模式的,假如你有追求的态度使用过requireJs这个库,你一定思考过一个问题,或者说一种组件化的雏形思维,那就是运用一个模板引擎如artTemplate+requireJs实现一个单页面组件化的开发模式(spa)

先贴一个目录结构

这是近段时间做的一个中后台系统的基本目录结构,就是使用上述的模式。如图所示:其中index.html为网页唯一入口,其他每一个页面均对应一个tpl+css+js,名牌休闲女装_芭黎地铁女装价格页面青春时尚女装品牌店_个人买卖二手车跳转均通过require["xx",cb]实现,看上去好像其实也挺好的,简单、快捷,那么这样的模式有个很大的问题就是不产生浏览记录,页面买手机要身份证吗_买火车票身份证有x无法后退!无法单独刷新!所以,应运而生,是时候给他赋予路由功能了

简要思路

在页面跳转的时候使用history.pushState(stateObject, title, url)改变url的hash值(如:#....),通常情况是预先配置好的路由key,这个时候会触发window.onhashchange事件,回调函数里执行业务逻辑并最终控制页面的跳转,这样一来就基本达到了路由的能力。同时再配合window.onpopstate事件,当页面后退时触发,进行相关的逻辑控制。

简要实现 API router.config(obj) //配置路由对应的key-value var roleid = 2; router.config({ view: ".module-container", //渲染模板的dom baseUrl: "http://2xhj000.nnomm.cn/", //资源根路径 router: { "page-test1": { templateUrl: "tpl/test/test1.tpl", //模板或页面地址 controller: "js/test/test1.js", //页面对应的js role: [1, 2] //能访问页面的角色id }, "page-test2": { templateUrl: "tpl/test/test2.tpl", controller: "js/test/test2.js", role: 1 }, "page-test3": { controller: "js/test/test3.js", role: 2 }, "defaults": "page-test1" //默认路由 }, errorTplId: "#errorTpl", //可选的错误模板,用来处理加载html模块异常时展示错误内容 enterCallback: function (routeObj) { //回车键后的回调函数,通常可做页面权限控制、数据统计等等 网上买火车票退票扣多少手续费_12306怎么买下铺 console.log("enterCallback") if (!routeObj.url) return; if (typeof routeObj.role == "object") { var notLook = false; for (var i = 0; i < routeObj.role.length; i++) { if (routeObj.role[i] == roleid) { notLook = true; break; } } if (!notLook) { router.isNotLook = false; alert("无权访问") } else { router.isNotLook = true; } } else { if (routeObj.role != roleid) { router.isNotLook = false; alert("无权访问") } else { router.isNotLook = true; } } } }); router.to(string, {}, [null || "_self" || "_blank"] , callback) //页面跳转、显示传参 router.to("page-test1", { "test1": "我是带过来的参数" }) router.getUrlParameter("test1") router.get/set/delParam/clear() //隐式传参 router.setParam({ "test1": "我是带过来的参数,不显示在url上哦" }) router.to("page-test1"); router.getParam("test1") 属性 完整版js

传送门

demo

传送门

存在问题

当前文章:

发布时间:2018-02-14 09:31:00

什么软件买东西好  天猫优惠券  淘宝优惠券  影院  优惠券  淘券啦  淘券啦  冰箱买回来多久可以用  淘宝优惠券  美折淘  

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
/