本文目录一览:
- 1、基于RxSwift的MVVM基础框架
- 2、WPF的ComboBox如果选择另一个值时报错则界面显示上一个值.MVVM
- 3、WPF MVVM(Caliburn.Micro+Metro)-配置Caliburn.Micro
- 4、WPF MVVM模式下 TreeView 怎么只展开一个节点.其余节点关闭
- 5、网络管理系统的系统特点
基于RxSwift的MVVM基础框架
先把demo放上来 github
本文是基于一个大神的项目 SwiftHub ,做了一些修改,并应用到公司app中了。谈起从学习此框架到不断优化的过程,真是痛并快乐着。
demo目前是使用的测试数据,延时两秒返回数据,模拟访问网络的情况,具体可以查看 Network/Networking.swift 的APIKeysBasedStubBehaviour方法,实际使用时要使用.never来关闭模拟数据。
Network/API.swift 是配置接口的地方
Network/PTPreference.swift 中的baseURL要替换成自己的,NetSuccessCode要根据服务器具体设置
Networking/NetApi.swift 中的NetBody结构体要根据读者服务器实际返回字段修改一下
若是请求成功了,想给用户提示,但是后台返回的msg字段是 success ,纳尼??用如下方式轻松解决
WPF的ComboBox如果选择另一个值时报错则界面显示上一个值.MVVM
你的描述我不是很看得懂。但你如果在界面发生Combobox选项变化的时候,后台的this.SelectedKeyBordChanged(value))的确返回的应该是false。因为你在xaml里
SelectedValue="{Binding SelectedKeyBordValue}" 说明SelectedValue是单向绑定,后台数据发生变化前台会做出相应的变化,但前台发生变化后台数据不发生变化。如果前台发生变化,且要通知到后台。只需SelectedValue="{Binding SelectedKeyBordValue, Mode=TwoWay}即可
WPF MVVM(Caliburn.Micro+Metro)-配置Caliburn.Micro
Caliburn.Micro(以下简称CM) 根据它的官网()介绍,是一个简洁的轻量级的MVVM开源框架,它是一套协助开发WPF、Silverlight、Windows RT等应用程序的库。
接上一个文章,讲我们wpf程序改成MVVM框架,为了便于查看,增加两个文件夹分别用于存放View,ViewModel,同事删除默认启动文件MainWindow.xaml
可通过CM官网文档进行改造启动文档或者直接参考github()下面的sample
Boostrapper继承BootstrapperBase,通过container请求ViewModel启动View,如下
之前删除MianWindow同时要删除之前的启动方式StartupUri
引用本地的bootstrapper
ResourceDictionary
ResourceDictionary.MergedDictionaries
ResourceDictionary
local:Bootstrapper x:Key="Bootstrapper" /
/ResourceDictionary
/ResourceDictionary.MergedDictionaries
/ResourceDictionary
正常显示
需要继承Screen,Screen就是用来表示UI部件的,可以通过GetView可以获得对应的View对象。因为Screen实现了很多功能,所以个人建议所有ViewModel都继承自Screen
新增一个文本显示
CM View TextBlock可以通过Name属性与ViewModel ShowHello进行绑定
构造方法中给ShowHello赋值,运行时显示在View中,最终显示如下
简单的CM框架的小程序就完成了
WPF MVVM模式下 TreeView 怎么只展开一个节点.其余节点关闭
先定义了一个类 public class TreeViewIconsItem : TreeViewItem { ImageSource iconSource; TextBlock textBlock; Image icon; public TreeViewIconsItem() { StackPanel stack = new StackPanel(); // 设置StackPanel中的内容水平排列 stack.Orientation = Orientation.Horizontal; Header = stack; icon = new Image(); icon.Source = iconSource; // 向StackPanel对象中添加一个图标对象 stack.Children.Add(icon); // 创建用于添加文本信息的TextBlock对象 textBlock = new TextBlock(); // 向StackPanel对象中添加文本信息 stack.Children.Add(textBlock); } // 用于设置或获得节点中的图标对象 public ImageSource Icon { set { iconSource = value; icon.Source = iconSource; icon.Width = 16; icon.Height = 16; } get { return iconSource; } } // 用于设置或获得节点中的文本信息 public string HeaderText { set { textBlock.Text = value; } get { return textBlock.Text; } } } 加载数据时:TreeViewIconsItem tvii = new TreeViewIconsItem();tvii.HeaderText = s;TreeViewIconsItem tviiSub = new TreeViewIconsItem();tviiSub.HeaderText = friend[1];tvii.Items.Add(tviiSub);treeview1.Items.Add(tvii);
网络管理系统的系统特点
随着我国计算机网络的发展和5G时代的来临,国内网络建设突飞猛进、网络设施规模不断增加,业务功能越来越强。传统网络管理方式工作量大、效率低,故而基于三层组织架构的网络管理系统因其易管理、功能强大、可扩展等突出优势成为未来网络管理系统的发展方向。此外,随着新兴技术的出现,网络管理行业进入了全新发展模式,因此具有智能故障诊断功能的网络管理系统也成为实际的需求和行业重点研究内容之一。
本文在全面综述的基础上,深入分析了基于人工智能技术在网络诊断中的应用,在此基础上重点研究了以路由接口为对象的BP网络故障诊断模型。论文采用6种物理故障指标、9种运行状态指标,训练获得针对网络接口故障的BP神经网络诊断模型。以此为基础,经需求分析,根据实际应用设计并实现了智能网络管理系统,系统主要包括:用户管理、网络监测、配置管理、和故障诊断四个模块,用户管理模块用于记录管理员相关信息;配置管理模块可通过Web页面对网络设备进行配置;故障诊断模块作为论文研究的重点,采用BP网络故障诊断模型实现网络故障的分析与诊断;网络监测模块展示网络设备运行参数与运行状态。
本文将BP神经网络模型与现代网络管理技术相结合,对于此类系统的研究和设计具有一定的借鉴意义和参考价值。
关键词:BP神经网络;网络故障;SNMP;网络管理
1绪论
1.1研究背景与研究目的意义
中国互联网络信息中心(CNNIC,2018)发布了截至2018年12月的第43次中国互联网发展统计报告。根据该报告,截至2018年12月,中国互联网用户数量为8.29亿,并且每年保持在5000多万增量。而且这种趋势将在未来几年继续保持。5G时代的来临将会加快促进互联网与其他产业融合,网络规模必然会进一步增大。
传统的网络管理系统以分布式网络应用系统为基础,采用软件和硬件相结合的方式。SNMP协议是目前网络管理领域运用最为广泛的网络管理协议,它将从各类网络设备中获取数据方式进行了统一化,几乎所有的网络设备生产厂商都支持此协议。然而传统的基于SNMP的网络管理软件大多基于C/S架构,存在着扩展性和灵活性差,升级维护困难等缺点,对网为网络的管理带来了一定程度的不便。因此,基于三层的网管系统己经成为发展趋势,随着Web技术迅猛发展,诞生了以Web浏览器和服务器为核心,基于B/S ( Browser/Server)架构的“Web分布式网络管理系统”,它具有不依赖特定的客户端应用程序,跨平台,方便易用,支持分布式管理,并且可动态扩展和更新等优点。
本文将重点研究基于BP故障诊断模型,实现了一种以接口故障为研究对象的智能网络管理系统模型,并以此为基础,设计与实现基于web的智能网络管理系统,不仅可以通过对网络数据实时监控,而且基于BP网络故障诊断模型可以诊断通信网中的接口故障,在一定程度上实现网络故障管理的自动化。该系统在保证网络设备提供稳定可靠的网络服务同时,也可以降低企业在维护网络设备上的成本。
1.2国内外研究现状
网络设备管理是指对各种网络设备(如核心层、汇接层、接入层路由与交换设备、服务器和计算机)进行各种操作和相关配置,管理服务器(Manager)用来处理网络信息,配合管理服务器对网络信息处理并管理的实体被称为代理服务器(Agent),被管对象是指用于提供网络服务或使用网络服务等设备的全部资源信息,各种不同的被管对象构成了管理信息库。在实际的网络管理过程当中,管理服务器和代理服务器以及代理服务器和被管对象三种实体之间都是通过规范的网络管理协议来进行信息的交互(王鹤 2015)。
相比国外的网络管理系统及产品,国内相应的网络管理系统和产品起步比较晚,但是随着互联网技术的发展网络管理软件发展势头迅猛,诞生了很多优秀的网络管理软件,这些软件已经广泛运用在我国网络管理领域。
1.2.1国外研究现状
目前国外大型网络服务商都有与其产品相对应的网络管理系统。从最初步的C/S架构逐步过渡到现在的B/S架构。比较著名的:Cabletron系统公司的SPECTRUM,Cisco公司的CiscoWorks,HP公司的OpenView,Tivoli系统公司的TH NetView。这些网络管理产品均与自家产品相结合,实现了网络管理的全部功能,但是相对专业化的系统依旧采用C/S架构。
NetView这款管理软件在网络管理领域最为流行。NetView可以通过分布式的方式实时监控网络运行数据,自动获取网络拓扑中的变化生成网络拓扑。另外,该系统具有强大的历史数据备份功能,方便管理员对历史数据统计管理。
OpenView具有良好的兼容性,该软件集成了各个网络管理软件的优势,支持更多协议标准,异种网络管理能力十分强大。
CiscoWorks是Cisco产品。该软件支持远程控制网络设备,管理员通过远程控制终端管理网络设备,提供了自动发现、网络数据可视化、远程配置设备和故障管理等功能。使用同一家产品可以更好的服务,因此CiscoWorks结合Cisco平台其他产品针对Cisco设备可以提供更加细致的服务。
Cabletron的SPECTRUM是一个具有灵活性和扩展性的网络管理平台,它采用面向对象和人工智能的方法,可以管理多种对象实体,利用归纳模型检查不同的网络对象和事件,找到它们的共同点并归纳本质。同时,它也支持自动发现设备,并能分布式管理网络和设备数据。
1.2.2国内研究现状
随着国内计算机发展迅猛,网络设备规模不断扩大,拓扑结构复杂性也随之日益增加,为应对这些问题,一大批优秀的网络管理软件应运而生。像南京联创OSS综合网络管理系统、迈普公司Masterplan等多个网络管理系统。华为公司的iManager U2000网络管理系统,北京智和通信自主研发的SugarNMS开源网络管理平台,均得到较为广泛应用。
Masterplan主要特点是能够对网络应用实现良好的故障诊断和性能管理,适用于网络内服务器、网络设备以及设备上关键应用的监测管理。
SugarNMS具有一键自动发现、可视化拓扑管理、网络资源管理、故障管理、日志管理、支付交付等功能,并提供C/S和B/S两种使用方式。
iManager U2000定位于电信网络的网元管理层和网络管理层,采用开放、标准、统一的北向集成,很大程度上缩短OSS集成时间,系统运行以业务为中心,缩短故障处理时间,从而减少企业故障处理成本。
近些年来,随着人工智能技术的崛起,越来越多的企业开始将人工智能技术应用在网络管理上面,替代传统的集中式网络管理方式。为了减小企业维护网络的成本,提高网管人员工作效率,智能化、自动化的网络管理系统成为许多学者研究的热点。
1.3神经网络在网络管理中的适用性分析
网络管理的功能就是对网络资源进行管控、监测通信网络的运行状态以及排查网络故障。管控网络资源,本质上就是管理员为了满足业务需求下发相关设备配置命令改变网络设备状态,以保证稳定的服务;监测网络运行状态一般是指周期的或者实时的获取设备运行状态进行可视化,以方便管理员进行分析当前设备是否正常运行。排查网络故障是管理员通过分析网络设备运行数据与以往数据进行比较或者根据自身经验进行分析,确定故障源头、故障类别、产生原因、解决方法。故障排除是针对前一阶段发现的网络故障进行特征分析,按照诊断流程得出结果,执行特定的指令动作来恢复网络设备正常运行(洪国栋,2016)。
神经网络具有并行性和分布式存储、自学习和自适应能力、非线性映射等基本特点。当下最为流行的神经网络模型就是BP(Back-Propagation)神经网络,是一种按照误差逆向传播算法训练多层前馈神经网络,属于监督式学习神经网络的一种。该模型分为输入层、隐含层以及输出层,网络模型在外界输入样本的刺激不断改变连接权值,将输出误差以某种形式通过隐含层向输入层逐层反转,使得网络输出不断逼近期望输出,其本质就是连接权值的动态调整。BP神经网络拥有突出的泛化能力,善于处理分类问题。
BP网络是目前常用的误差处理方式,在众多领域得到了广泛的应用,它的处理单元具有数据量大、结构简单等特点,并且神经网络以对大脑的生理研究成果为基础,模拟大脑某些机制与机理组成十分繁杂的非线性动力学系统,其在处理网络设备运行中的数据时以及在比较模糊信号问题的时候,能够自主学习并得出需要的结果。能够将模型中输入输出矢量进行分类、连接、来适应复杂的传输存储处理。因此,本文会基于现有网络管理技术结合BP神经网络去解决网络故障问题。
1.4本文主要研究目标
1.4.1本文研究目标
针对传统网络管理中故障方案的问题与不足,本文探究基于BP神经网络的方法来构建基于通信网接口故障诊断模型。通过构建的通信网接口故障诊断模型可以有效的诊断接口故障并判别出故障类型。推动现有网络管理系统更趋近于智能化。以此为基础,分析、设计、实现基于三层架构的智能网络管理系统
1.4.2技术路线
智能网络研究首先要确定该系统的开发技术路线,课题研究的主要过程首先是在查阅相关科研资料的基础上,搭建实验环境。在保证网络正常通信的前提下采集各个端口的流入流出流量,记录设备的运行状态并对设备进信息进行管理。同时布置实验环境相应故障,包括:改变端口状态、更改端口ip地址、子网掩码,采集通讯网络接口故障发生时网络拓扑中产生的异常数据。查阅BP神经网络在故障在诊断方面的相关论文,基于网络通讯设备接口的常见故障以及相关故障文档构建BP神经网络故障模型,并判断故障模型的有效性。逐步地实现系统的全部功能。最后进行系统测试,得出结论,应用于实际。
1.5本文组织结构
本文主要由六个章节构成,各章节主要内容如下:
第一章绪论。本章首先简要介绍了网络管理系统当前的发展及应用现状从而进一步分析出建立智能网络管理系统的重要意义。阐述了网络管理系统国内外研究现状。最后论述了本文研究目的与组织结构。
第二章相关概念及相关技术。本章对SNMP的相关技术进行详细介绍,SNMP组织模型 、SNMP管理模型、SNMP信息模型、SNMP通讯模型。然后对前端框架Vue和绘图插件Echarts技术进行介绍,其次介绍了常见的故障分析技术,专家系统、神经网络等,最后对神经网络基本概念和分类进行简要描述。
第三章基于BP神经网络故障推理模型。介绍了BP神经网络的基本概念、网络结构、设计步骤、训练过程,以接口故障为例详细介绍了BP神经网络故障模型的构建过程。
第四章智能网络管理系统分析与系统设计。首先进行了需求分析,其次对体系结构设计、系统总体模块结构设计进行说明,对系统各个功能模块分析设计结合活动图进行详细说明,最后对数据库设计进行简要说明。
第五章智能网络管理系统的实现。对整体开发流程进行了说明,对用户管理模块、配置管理模块、设备监控模块、故障诊断模块实现流程进行描述并展示实现结果。
第六章系统测试与结论。并对系统的部分功能和性能进行了测试,并加以分析。
第七章总结与展望。总结本文取得的研究成果和存在的问题,并提出下一步改进系统的设想与对未来的展望。
2相关概念及相关技术
2.1网络管理概述
网络管理就是通过合适手段和方法,确保通信网络可以根据设计目标稳定,高效运行。不仅需要准确定位网络故障,还需要通过分析数据来预先预测故障,并通过优化设置来降低故障的发生率。
网络管理系统的五大基本功能,分别为:配置管理、性能管理、故障管理、计费管理和安全管理:
1)配置管理:配置管理是最重要和最基础的部分。它可以设置网络通讯设备的相关参数,从而管理被管设备,依据需求周期的或实时的获取设备信息和运行状态,检查和维护设备状态列表,生成数据表格,为管理员提供参考和接口以更改设备配置。
2)性能管理:性能管理是评估系统网络的运行状态和稳定性,主要工作内容包括从被管理对象获取与网络性能相关数据,对这些数据进行统计和分析,建立模型以预测变化趋势、评估故障风险,通过配置管理模块修改网络参数,以确保网络性能最优利用网络资源保证通信网络平稳运行。
3)故障管理:故障管理的主要功能就是及时辨别出网络中出现的故障,找出故障原因,分析并处理故障。故障管理一般分为四个部分:(1)探测故障。通过被管设备主动向管理站发送故障信息或者管理站主动轮询被管设备两种方式发现故障源。(2)发出告警。管理站发现故障信息之后,会以短信、信号灯等方式提示管理员。(3)解决故障。对故障信息进行分析,明确其故障原因和类型,找到对应方法得以解决。(4)保存历史故障数据。对历史故障数据进行维护备份,为以后的故障提供一定依据,使得处理网络故障更为高效。
4)计费管理:计费管理主要功能是为客户提供一个合理的收费依据,通过将客户的网络资源的使用情况进行统计,例如将客户消费流量计算成本从而向客户计费。
5)安全管理:目的就是保证网络能够平稳安全的运行,可以避免或者抵御来自外界的恶意入侵,防止重要数据泄露,例如用户的个人隐私泄露问题等。
根据网络管理系统的体系结构和ISO定义的基本功能,基于Web的网络管理系统基本模型如图基于Web的网络管理系统基本模型所示,整个模型包括六个组成部分:Web浏览器,Web服务器,管理服务集,管理信息库,网络管理协议,被管资源。
2.2 SNMP协议
简单网络管理协议SNMP(Simple Network Management Protocol),既可以作为一种协议,也可以作为一套标准。事实上SNMP己经成为网络管理领域的工业标准,从提出至今共有八个版本,在实践中得到广泛应用的有三个版本,分别是SNMPv1, SNMPv2c和SNMPv3(唐明兵2017)。最初的SNMPv1主要是为了满足基于TCP/IP的网络管理而设计的,但是随着网络管理行业的迅猛发展,第一版本的SNMP协议已经不适应网络行业的发展,身份验证、批量数据传输问题等暴露导致SNMPv1难以支持日益庞大的网络设备。第二版本就演变成了一个运行于多种网络协议之上的网络管理协议,较第一版本有了长足的进步,不仅提供了更多操作类型,支持更多的数据类型而且提供了更加丰富的错误代码,能够更加细致的区分错误,另外支持的分布式管理在一定程度上大大减轻了服务器的压力。但是SNMPv2c依旧是明文传输密钥,其安全性有待提高。直到1998年正式推出SNMPv3,SNMPv3的进步主要体现在安全性能上,他引入USM和VACM技术,USM添加了用户名和组的概念,可以设置认证和加密功能,对NMS和Agent之间传输的报文进行加密,提升其安全性防止窃听。VACM确定用户是否允许特定的访问MIB对象以及访问方式。
2.2.1 SNMP管理模型与信息模型
SNMP系统包括网络管理系统NMS(Network Management System)、代理进程Agent、被管对象Management object和管理信息库MIB(Management Informoation Base)四部分组成.管理模型图如图所示:
1)NMS称为网络管理系统,作为网络管理过程当中的核心,NMS通过SNMP协议向网络设备发送报文,并由Agent去接收NMS发来的管理报文从而对设备进行统一管控。NMS可以主动向被管对象发送管理请求,也可以被动接受被管对象主动发出的Trap报文。
2)Agent相当于网络管理过程中的中间件,是一种软件,用于处理被管理设备的运行数据并响应来自NMS的请求,并把结果返回给NMS。Agent接收到NMS请求后,通过查询MIB库完成对应操作,并把数据结果返回给NMS。Agent也可以作为网络管理过程中的中间件不仅可以使得信息从NMS响应到具体硬件设备上,当设备发生故障时,通过配置Trap开启相应端口,被管设备也可以通过Agent主动将事件发送到NMS,使得NMS及时发现故障。
3)Management object指被管理对象。一个设备可能处在多个被管理对象之中,设备中的某个硬件以及硬件、软件上配置的参数集合都可以作为被管理对象。
4)MIB是一个概念性数据库,可以理解为Agent维护的管理对象数据库,里面存放了被管设备的相关变量信息。MIB库定义了被管理设备的一系列属性:对象的名称、对象的状态、对象的访问权限和对象的数据类型等。通过读取MIB变量的值, Agent可以查询到被管设备的当前运行状态以及硬件信息等,进而达到监控网络设备的目的。Agent可以利用修改对应设备MIB中的变量值,设置被管设备状态参数来完成设备配置。
SNMP的管理信息库是树形结构,其结构类型与DNS相似,具有根节点且不具有名字。在MIB功能中,每个设备都是作为一个oid树的某分支末端被管理。每个OID(object identifier,对象标识符)对应于oid树中的一个管理对象且具有唯一性。有了树形结构的特性,可以高效迅速地读取其中MIB中存储的管理信息及遍历树中节点,读取顺序从上至下。目前运用最为广泛的管理信息库是MIB-Ⅱ,它在MIB-Ⅰ的基础上做了扩充和改进。MIB-Ⅱ结构示意图如2.3图如所示:
(1)system组:作为MIB中的基本组,可以通过它来获取设备基本信息和设备系统信息等。
(2)interfac组:定了有关接口的信息,例如接口状态、错误数据包等,在故障管理和性能管理当中时常用到。
(3)address translation组:用于地址映射。
(4)ip组:包含了有关ip的信息,例如网络编号,ip数据包数量等信息。
(5)icmp组:包含了和icmp协议有关信息,例如icmp消息总数、icmp差错报文输入和输出数量。
(6)tcp组:包含于tcp协议相关信息,例如tcp报文数量、重传时间、拥塞设置等。应用于网络拥塞和流量控制。
(7)udp组:与udp协议相关,可以查询到udp报文数量,同时也保存了udp用户ip地址。
(8)egp组:包含EGP协议相关信息,例如EGP协议下邻居表信息、自治系统数。
(9)cmot组:为CMOT协议保留
(10)transmission组:为传输信息保留
(11)snmp组:存储了SNMP运行与实现的信息,例如收发SNMP消息数据量。
2.2.2 SNMP通讯模型
SNMP规定了5种协议基本数据单元PDU,用于管理进程与代理进程之间交换。
(1)get-request操作:管理进程请求数据。
(2)get-next-request操作:在当前操作MIB变量的基础上从代理进程处读取下一个参数的值。
(3)set-request操作:用于对网络设备进行设置操作。
(4)get-response操作:在上面三种操作成功返回后,对管理进程进行数据返回。这个操作是由代理进程返回给管理进程。
(5)trap操作:SNMP代理以异步的方式主动向SNMP管理站发送Trap数据包。一般用于故障告警和特定事件发生。
SNMP消息报文包含两个部分:SNMP报头和协议数据单元PDU。根据TCP/IP模型SNMP是基于UDP的应用层协议,而UDP又是基于IP协议的。因此可以得到完整的SNMP报文示意图如下:
(1)版本号表示SNMP版本,其中版本字段的大小是版本号减1,如果SNMPv2则显示的字段值是1。
(2)团体名(community)本质上是一个字符串,作为明文密钥在管理进程和代理进程之间用于加密传输的消息,一般默认设置成“public”。
(3)请求标识符(request ID)用于消息识别。由管理进程发送消息时自带一个整数值,当代理进程返回消息时带上该标识符。管理进程可以通过该标识符识别出是哪一个代理进程返回的数据从而找到对应请求的报文。
(4)差错状态(error status)表示出现错误时由代理进程返回时填入差错状态符0~5中的某一数字,数字对应相关错误信息。差错状态描述符如下表:
(5)差错索引(error index)表示在通信过程当中出现上表2.2的差错时,代理进程在应答请求时设置一个整数,整数大小对应差错变量在变量列表中偏移大小。
(6)变量名-值对以key-value的方式存储变量名称和对应值。
(7)trap报文是代理进程主动向管理进程发送的报文,不必等待管理进程下一次轮询。SNMPv2的trap报文格式较SNMPv1的trap报文格式更趋近于普通的SNMP响应报文,更加统一化。以SNMPv2为例的trap报文格式如下:
trap类型已定义的特定trap共有7种,后面的则是由供养商自己定制。Trap类型如下表所示:
2.2.3 SNMP组织模型
SNMP代理组织分成分散式和集中式模型。在分散模型中,每一个服务器对应一个SNMP代理,可以理解为一一对应的关系,管理站分别与每个被管服务器上的代理进行通信。
集中模型当中,在管理服务器上只创建一个SNMP代理。管理站只与管理管理服务器上的SNMP代理进行通信, SNMP代理接收来自某一固定区域的所有数据。如图2.6所示:
2.3 Vue
为实现前后端分离开发的理念,Vue应运而生。作为构建用户界面框架的Vue.js简单易上手使得前端开发人员不必再编写复杂的DOM操作通过this来回寻找相关节点,很大程度上提高了开发的效率。通过MVVM框架,可以自动完成视图同步数据更新,在对实例new Vue(data:data)进行声明后data中数据将与之相应的视图绑定,一旦data中的数据发生变更,视图中对应数据也会发生相应改变。Vue.js基于MVVM框架实现了视图与数据一致性,MVVM框架可以分为三个部分:Model、ViewModel、View。MVVM框架模式:
Vue.js的理念是“一切皆为组件”,可以说组件是Vue.js的最强大功能。组件可以扩展HTML元素,将HTML、CSS、JavaScript封装成可重用的代码组件,可以应用在不同的场景,大大提高效率。它与传统的JavaScript相比,采用虚拟DOM渲染页面。当有数据发生变更时,生成虚拟DOM结构与实际页面结构对比,重新渲染差离部分,进一步提供了页面性能。
2.4 Echarts
Echarts(Enterprise Charts),它是由百度公司研发的纯JavaScript图表库,可以流畅的运行在PC和移动设备上。ECharts兼容当前主流浏览器,底层依赖轻量级Canvas库ZRender,Echarts提供直观、生动、交互性强、高度自定义化的可视化图标。ECharts包含了以下特性:
1)丰富的可视化类型:既有柱状图、折线图、饼图等常规图,也有可用于地理数据可视化的热力图、线图等,还有多维数据可视化的平行坐标。
2)支持多种数据格式共存:在4.0+版本中内置的dataset属性支持直接传入包括二维表中。
3)多维数据的支持:可以传入多维度数据。
4)移动端优化:特别针对移动端可视化进行了一定程度优化,可以使用手指在坐标系中进行缩放、平移。
5)动态类型切换:支持不同类型图形随意切换,既可以用柱形图也可以用折线图展示统一数据,可以从不同角度展现数据。
6)时间轴:对数据进行可视化的同时,可以分为周期或者定时进行展示,所有利用时间轴可以