当我们从.NET全面进入Java方向时,前端框架已经进入了纯前端渲染阶段,而作为基础管理软件之一的合同与/法务/案件管理平台,出于业主单位的个性化需求以及全产品动态建模的需求。我们的pc业务前端采用了学习成本较低的vue框架作为前端集成,并引入elementUI作为基础组件。
现有的组件是无法直接满足我们的使用需求的,但经过基于业务的重新定义后。用于适用主表/从表/内联/扩展模型的基本需求。封装了业务输入控件/文件使用控件/业务模块引入控件/网格控件/时间控件等业务基础组件,业务单据的数据模型采用了vuex进行全局管理,使产品开发模式标准化。整个模式为:vue----->elementui----->dhcc业务组件。
vue的基础内容请在官网学习:Vue.js (vuejs.org) ,这应该是最全的学习内容了。
那我们是怎么理解vue的呢?
当我们使用vue的时候,不管是纯前端模式还是在部分区域中使用vue,它都必须有一个根对象,并且需要挂载到特定而定html元素中:
所以,vue的核心基本明确,就是一个前端渲染框架,按照类似mvvm的模式,把数据/视图有序的整合起来.
当我们的产品在兼容IE8的时期,要非常小心使用纯前端渲染与双向绑定。因为使用ie8的机器,性能都不会好到哪去,而且内存也不会太多。
而当我们进入现代浏览器支持时,这些已经不再是问题,所有向vue这样纯前端渲染,并实时进行双向绑定解析的框架时,整个产品并不会有太差的体验。
基于单向数据流或双向绑定的react、vue框架,核心是把html进行了内存映射,形成了一层虚拟模型,所有的数据更新在虚拟dom中完成,然后根据与dom元素的虚拟对比形成变更差异,然后把最终需要变更内容进行小范围dom操作完成视觉更新。
这个过程的前提是客户端的浏览器版本与计算机性能至少不能太旧,浏览器内核采用较新版本,尤其是js慢慢转向es5/es6标准时,更需要浏览器与计算机性能的基础支持。
在公共消费市场不是什么问题,因为c端用的计算机性能都不会太差,而移动端由于其快速迭代效果,运行性能更不是问题。所以在b/c市场优先采用了纯前端渲染模式来降低服务端性能需求,
在B端市场,尤其是面向国企或超大型企业,硬件资源并不一定随着大趋势快速更新,所以企业级应用软件,使用框架与技术都较为谨慎。
vue既然是一个前端渲染集成框架,最终转换为html、css、js行为,并且采用数据驱动模式虚拟更新dom对象。
整个vue外部对象的整个行为已经可以基本猜测出:
绑定dom元素起点:el根元素 /元素显示模板区域
数据区域:data:
全局单一状态数据:store
dom元素的行为:methods区域
组合数据区:computed区域
属性变更监测区域:watchs:
基于层级管理的属性接收:props对象
由于vue组件的层级关系及数据有效性控制:单向数据流为我们简化了虚拟运行检查的难度。基于产品扩展需求及js的特性,引入了插件模式来扩展框架能力:并提供的全局混入与局部混入模式,使基于虚拟对象的模型能使用公共对象模型:store就是一个全局混入例子,让我们的所有节点能使用单一数据模型对象,而简化了整个体系数据管理难度。