AreaConfig -- 区域配置信息

在路由跳转时,会根据地址碎片信息解析区域配置文件,若区域配置文件未发生改变, 则不需要重新加载和初始化。

做过MVC项目的童鞋对区域都有所了解,在项目规划期间会根据业务、功能划分 多个区域,例如:用户、产品、订单等等,各区域要尽可能的做到低耦合,互相独立存在。针对某一个特定区域 我们可能会存在很多通用的配置,例如:数据字典、广播事件等等,这时我们就可以通过对该区域的配置文件进行 相应的设置来实现整个区域的独立配置。

若想获取当前区域配置信息,使用App.router.areaConfig进行读取。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

export default {

    //当前区域自定义布局方案

    layout: "DefaultLayout",

    //自定义当前区域自定义地址

    defaultPath: "index",

    //自定义当前区域公共样式

    styles: [demoCss],

    onInit:()=>{

        //配置文件初始化时触发

    },

    onLayoutShow: () => {

        //模板加载完毕后执行,可以处理一些当前模块公共事件

    },

    onTeardown:()=>{

        //区域配置文件卸载监听方法

    }

    //自定义属性...

}

执行逻辑

1

2

3

4

5

6

7

8

9

10

11

12

if (this.areaConfig !== areaConfig) {

    this.trigger("before:initArea");

    //卸载原有区域样式

    Utils.removeStyle(this.areaConfig.styles);

    //装载新区域样式

    Utils.insertStyle(areaConfig.styles);

    //执行区域自定义初始化方法,只触发一次

    if (Utils.isFunction(areaConfig.init)) {

        areaConfig.init();

    }

    this.trigger("after:initArea");

}

上面是Router中的执行逻辑,当地址栏解析完毕后,会优先去寻找区域配置文件, 若配置文件改变或者首次加载,则会广播App.router中的before:initArea事件,然后移除 原有的区域样式,接下来装在新的区域样式,最后执行广播App.router的after:initArea事件。

当前区域内跳转时,由于区域配置文件不会改变,则不会重复执行上述逻辑。

属性

参数名 作用 类型 默认值 备注
layout 布局方案名称 String App.option.defaultLayout 详见应用池属性介绍
defaultPath 默认地址 String   由于区域已确定,该值是Controller/Action/...
styles 当前区域自定义公共样式 Array   由于框架采用动态卸载、装载样式,所以务必在区域配置文件中先 import导入样式,然后将样式作为参数写入styles数组中。

详见下面例子

动态装载、卸载样式

1

2

3

4

5

6

import demoCss from "~/areas/Demo/resource/demo.less";

import demoCss1 from "~/areas/Demo/resource/demo.css";

export default {

    styles: [demoCss,demoCss1]

}

当区域切换时,Router会自动根据styles数组去卸载原有样式,并装载新的样式文件。

由于本项目采用了style-loader/useable,所有样式都支持use装载和unuse卸载 例如下面这个例子:

1

2

3

4

5

6

7

8

import demoCss from "~/areas/Demo/resource/demo.less";

import demoCss1 from "~/areas/Demo/resource/demo.css";

//卸载样式

demoCss.unuse();

//装载样式

demoCss1.use();

若直接import样式文件,不会在页面中生效,必须执行use方可生效。

公开方法

方法名 作用 参数 备注
onInit 初始化方法   初始化配置文件时触发,在不切换区域时,只会执行一次。
onTeardown 配置文件卸载方法   优先执行原配置文件卸载,后执行新配置文件onInit
onLayoutShow 布局方案渲染完毕   布局方案渲染完成后执行,若新旧配置文件中的布局方案一致时,不会触发该事件, 只有布局方案发生改变时执行一次。

https://github.com/ZhangChuanHui/BUZ

BUZ-区域配置信息相关推荐

  1. 数据通信技术(九:OSPF特殊区域配置(Cisco))

    OSPF单区域配置实验(Cisco) 一.知识准备 1.掌握了OSPF动态路由协议的定义和功能: 2.掌握了OSPF动态路由协议的特征和工作原理. 二.实验目的 1.掌握路由器中OSPF特殊区域STU ...

  2. 数据通信技术(八:OSPF单区域配置实验)

    OSPF单区域配置实验(Cisco) 一.知识准备 1.掌握了OSPF动态路由协议的定义和功能: 2.掌握了OSPF动态路由协议的特征和工作原理. 二.实验目的 掌握OSPF动态路由单区域的基本配置方 ...

  3. Tomcat下conf下server.xml的文件配置信息

    Tomcat下conf下server.xml的文件配置信息,基本上不用做任何修改就可以使用,修改的地方就是host区域的一些配置,此文件设置端口为80. 注意:Tomcat配置文件中(即server. ...

  4. OSPF简单多区域及末梢区域配置

    OSPF简单多区域及末梢区域配置 前言 一.简单实验题 二.简单OSPF配置 1.先配置各个路由端口的基本配置 2.配置OSPF 3.路由表及连通性(以R1为例) 三. 末梢区域配置 1.配置 2.连 ...

  5. spring cloud Eureka 之配置信息

    转载来源:http://blog.51cto.com/881206524/2117014 spring cloud Eureka 之配置信息 Eureka instance 一个服务,如:订单系统,会 ...

  6. OSPF基本概念单与区域配置

    姓名 xiaoyu888 OSPF基本概念单与区域配置<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office ...

  7. 在web.config中添加配置信息

    1 在web.config中添加配置信息<configuration><connectionStrings><add name="conStr" co ...

  8. 华为路由器OSPF多区域配置

    华为路由器OSPF多区域配置 在OSPF单区域中,每台路由器都要收集其他所有路由器的链路状态信息,如果网路规模不断扩大,链路状态信息也会随之不断的增多,这将使得单台路由器上链路状态数据库非常庞大,导致 ...

  9. OSPF单区域配置实验

    OSPF单区域配置实验 一.实验目的   1.掌握OSPF动态路由单区域的基本配置方法和结果验证. 二.实验内容   1.完成中兴1800路由器OSPF动态路由单区域的基本配置和结果验证. 三.实验过 ...

最新文章

  1. java中遍历Map对象的四种方式
  2. 从小玩到大的超级玛丽,计算复杂性是怎样的?
  3. SpringBoot_02 Spring的Java配置方式
  4. 2.用Python套用Excel模板,一键完成原亮样式
  5. esxi usb插口_酷暑大作战 | USB-C风扇新体验
  6. 广东省2021高考2bi补录成绩查询,重磅!广东省2021年普通高考美术统考成绩1月8日起可查询!...
  7. Javascript根据属性从对象数据中删除元素
  8. 【软件测试】单元测试的主要任务不包括全局数据结构
  9. 12.15daily_scrum
  10. python图书馆抢座_python模拟表单提交登录图书馆
  11. 【LTspice仿真软件】如何从官网下载软件和入门到精通的教程
  12. 计算机启用远程桌面连接失败,开启局域网远程桌面连接不上怎么办
  13. php集成环境安装包比较,PHP集成环境phpStudy安装包分享
  14. idea类注释模板快捷键设置
  15. miui patchrom项目开发详细教程(Being updated)
  16. Opencv4学习-3、进阶图像基本操作1
  17. 大数据是什么?1分钟了解大数据的概念!
  18. Python 生成excel表格
  19. 2021-11-03皮革制作与环保科技
  20. 【狂神说】Spring Cloud

热门文章

  1. 电子商务让我的公司站稳脚跟
  2. 并发-AQS源码分析
  3. c语言设计基础答案第二版,程序设计基础——基于C语言(第2版) 课后习题参考答案...
  4. 电脑技巧:常见软驱故障及解决办法
  5. 牛客网简单题型练习第四弹
  6. 【大疆面试】7.24
  7. Go os.OpenFile()bufio.NewWriter()文件创建并使用带缓冲区写文件
  8. Python---继承与多态
  9. 命令行进入mysql
  10. ubuntu安装zipline