directorjs和requirejs和artTemplate模板引擒建立的SPA框架

分为4块:
A : index.html壳子。 加载B init-config.js, 加载D header.html模板
B : init-config.js 个人信息+路由配置+权限+渲染单页。 加载C navMenu.js
C: navMenu.js 处理头部+处理中间模板+总菜单。返回给B init-config.js
D: header.html模板。模板的作用,整个页面大部分除掉单页
A:Index.html:
一个空壳子,这个上面include进:header.html, require.js, init-config.js,
加进了所有的css,,,,配置了gulp打包的build,替换压缩后的文件,加入了百度统计
B:init-config.js
这个配置了:
Require.js的配置config
路由的map( 键 和 path路径+permission),
拿用户信息接口,返回了用户角色,姓名,权限码,存全局变量
Director.js的init方法,初始化路由
方法1,将路由map转化为对象,规则为:/aaa:function(){},键-方法,,键方法对,组合规则是directors的用法
方法2,即路由键对应的执行方法,当浏览器地址栏出现某/hash值的时候,获取此hash的路由map条目,拿到permission,
用户接口返回值判断是否登录-----》sso,
判断权限(permission与用户接口权限码,利用shiro-trie)------》403页,
去执行navMenujs拿到返回值-----》中间模板right。执行init方法(C模板介绍见后)
Ajax请求map的path路径的单页面,-------》渲染单页,根据right,是right.html(单页)或
CommonBus.html(单页),这个根据页面挖空的结构来。
C:navMenu。Js
配置所有工程的https://域名./
配置所有的菜单
清空container元素,移除所有监听
头部,登录,退出,用户名,游客的显示处理,监听登录/退出事件,-----》sso/首页
渲染头部模板,根据默认总菜单
渲染中间模板
渲染中间模板根据方法X
方法X:根据init传来的hash,window得来,拿到所有的一级菜单,二级菜单,三级菜单
D:header.html
所有二级菜单即各个工程,所有的页面,
整个页面(头部导航+中间模板(面包屑+左侧三级菜单等等))大部分都是这里拼的模板
架构
NavMenu.js所有工程公用,配置了总工程的菜单总表
单个工程如:investor的init-config.js只配置自己的map路由表
每个工程都有一个相同壳子A模块,每个工程有一个域名,每个工程有自己的路由表,每个工程有init-config。Js
即:A模块B模块各子工程具有自己的,
C模块D模块公用,放cdn。
C模块只作一个模块,define(‘C模块名’,【引用】,function(){});amd规范
D模块:公用,包括了各子工程的模板,nevMenu会根据哪个工程,渲染哪个工程的模板
头部导航几乎所有子工程可以公用模板。但是各子工程中间块设计不一样,所有有各自的中间模板。
directorjs和requirejs和artTemplate模板引擒建立的SPA框架的更多相关文章
- artTemplate模板引擎学习实战
在我的一篇关于智能搜索框异步加载数据的文章中,有博友给我留言,认为我手写字符串拼接效率过低,容易出错.在经过一段时间的摸索和学习之后,发现现在拼接字符串的方法都不在是自己去书写了,而是使用Javasc ...
- artTemplate模板引擎
artTemplate模板引擎 <li>索引 {{i + 1}} :{{value}}</li> {{/each}} </ul> </ ...
- 一个简单的模板引(han)擎(shu)
自制一个简单的模板引(han)擎(shu) 原理 说大了 实际上是模板函数 原理呢就是简单的字符串替换 第一版 var data = { username: 'Muhha' } str = '< ...
- 高性能前端 art-template 模板
官网: https://aui.github.io/art-template/zh-cn/index.html nodejs 服务器端使用 第一步: 引入 art-template 的包 npm in ...
- django的小操作,查询效率up, 引用art-template模板+djangorestframework
Part1: 提高查询效率newses = News.objects.select_related('category', 'author').get(id=1) # category和author字 ...
- thinkjs——art-template模板用法
前言: 概述之前先附上此正式版介绍地址:https://github.com/aui/artTemplate or http://www.jq22.com/jquery-info1097,可以再看下 ...
- ajax请求数据填充表格———使用art-template模板提高效率
一.为什么要用art-template模板 在实习的一次项目中,因为需求中展示表格的字段有很多个,后端返回的也是json数据,这时候如果还是使用之前的字符串拼接,这样会开发得比较慢,而且容易出错,而且 ...
- nodejs中引入art-template模板
使用Webstorm创建nodejs express应用时,默认使用的是jade或者ejs模板,对于不习惯这两种模板语法的人来说确实不是很方便.没关系,这里我们使用art-template模板引擎,使 ...
- koa art-template模板引擎的使用
art-template 模板引擎介绍 art-template 是一个简约.超快的模板引擎. 它采用作用域预声明的技术来优化模板渲染速度,从而获得接近 JavaScript 极限的运行 性能,并且同 ...
随机推荐
- DpQuery.js
(function (window) { //添加事件的方法通用所有 function addevent(evetname, fn, obj) { if (document.attachEvent) ...
- 嵌入式开发之信号采集同步---VSYNC和HSYNC的作用以及它们两者之间的关系
VSYNC和HSYNC的作用以及它们两者之间的关系 VSYNC和HSYNC的作用以及它们两者之间的关系 VSYNC和HSYNC是什么 VSYNC: vertical synchronization,指 ...
- 分享一个Unity3D小作品,源码地址已公布在文章开头!
Update:回复量有点大,楼主工作期间可能无暇向童鞋们发送源码,为了不让童鞋们久等,现公布源码地址. 链接: http://pan.baidu.com/s/1sjpYW4d 密码: zhp9 请注 ...
- MathType与Origin是怎么兼容的
MathType作为一款常用的公式编辑器,可以与很多的软件兼容使用.Origin虽然是一款专业绘图与数据分析软件,但是在使用过程中也是可以用到MathType.它可以帮助Origin给图表加上标签,或 ...
- python3----模块(序列化(json&pickle)+XML+requests)
一.序列化模块 Python中用于序列化的两个模块: json 跨平台跨语言的数据传输格式,用于[字符串]和 [python基本数据类型] 间进行转换 pickle python内置的数据 ...
- 6、手把手教React Native实战之JSX入门
React是由ReactJS与React Native组成,其中ReactJS是Facebook开源的一个前端框架,React Native是ReactJS思想在native上的体现! JSX并不是一 ...
- JS循环语句的理解
循环语句就是让程序重复性去做某些工作 最常见的就是for循环 那它的写法都有哪些呢? 1.必须要有初始值 2.要有条件判断 3.状态的改变 4.循环体 一定要控制循环多少次结束,否则就变成了死循环,消 ...
- Faster R-CNN利用新的网络结构来训练
前言 最近利用Faster R-CNN训练数据,使用ZF模型,效果无法有效提高.就想尝试对ZF的网络结构进行改造,记录下具体操作. 一.更改网络,训练初始化模型 这里为了方便,我们假设更换的网络名为L ...
- ajax 传递数组类型参数后台接收不到的问题
在做排序功能的时候需要将一个数组的数据传递到后台,(当时怎么没用json,如果用json就没有那么多的事情了),数据提交采用ajax! 先看代码 js: submitbtn: function () ...
- freemarker的${!}
${sss!} <#--没有定义这个变量,默认值是空字符串! --> ...................................... 转自:https://blog.csdn ...