-
MVC的本质不是分
-
MVC的初衷并不是分工合作
-
分不是目标,不合理的分法更容易导致沟通成本的上升
-
以数据为中心:去繁就简,返朴归真
-
大乱需大治:表现层没有上下文,一切修改从源头出发
-
前端MVC到底该怎么分
-
{HTML (M)+ CSS (V)} + JS(C)
-
JSON(M) + (HTML+CSS)(V)+JS(C)
-
什么是模板引擎
-
模板引擎的本质就是以一种以更加简单高效利于维护的方式帮我们完成拼接字符串的工作。
-
源代码接近目标代码。
-
源代码一般独立存在。
2
问渠哪能清如许 为有源头活水来
——初识 Lite XML
-
Lite XML是什么?
-
一种以XML方式存在的Lite源代码(可以类比于JVM之java源代码)
-
利于设计更高效的语法规则(因XML与目标代码HTML的近亲关系)
-
其他特别之处
-
表达式基于JavaScript运算规则。
-
前后端、跨语言统一模版语法。
-
Lite XML能带来什么?
-
保障输出合法性(减少XSS漏洞的发生)
-
降低学习成本(统一的模版语法)。
-
提高编码效率(通用工具支持)。
-
培养严谨的编程习惯(严谨的语法结构)。
-
方便代码复用利于后期维护(碎片包含/组织、格式化安全…)。
3
满堂花醉三千客 一剑霜寒十四州
——语法亮点
4
避繁就简 道法自然
——标记语法
-
标记语法的设计原则是,参考标准,避繁就简
-
形式上近似JSTL。 但有所简化
-
如JSTL的forEach标签还可以重定义对列表的起始位置,而Lite这些功能都迁移到表达式中,通过函数实现。简化控制逻辑。
-
控制语法上也近似JS,Java类编程语言
-
事实上吧Lite中间代码从新翻译成JS并非难事,1.0A中已支持该功能
-
最基本的标记有那些呢?
-
if
-
for
-
else
-
var
-
include (编译期实现)
-
在线测试
-
如何看待:大道甚夷,而民好径
-
Lite核心指令相对简单稳定。
-
我们可以通过自定义组建支持,但是不推荐。
-
建议通过函数实现更复杂的功能,如上面所说的列表位置问题
5
-
我们只做最需要的
-
短小精悍,Lite XML大小只有区区100k,相对其他模板实现,非常之轻。
-
TemplateEngine是一个默认实现。
-
Lite XML没有提供复杂的配置支持。
-
如何与Webwork(Struts2)集成。
-
-
扩展解析模块
-
在解析过程采用pipline模式组合节点解析器
-
任何节点解析器都可以作用于所有类型的节点,以支持横向扩展
-
节点解析器命中之后,输出编译指令,即可退出,完成纵向扩展。
-
解析过程中支持直接对运行模板默认全局变量集合扩展(内部扩展)
-
-
扩展运行时模版插件(不推荐)
-
运行时插件,可以以类似jsp tag lib的方式工作,甚至可以通过代理程序复用jsp tag。
-
-
扩展编译期模版插件(不推荐)
-
编译期插件允许某个插件在模板初始时直接控制默认全局变量集合。
6
-
表现形式
-
沿用html标准,无需新语法,降低学习成本。
-
根据服务端数据反向推断的方式自动初始化表单。
-
一切在悄然之间按您的期待的方式自动完成
-
处理逻辑
-
input 若未指定value属性,其值会自动从上下文获取
-
checkbox选中状态也可以根据上下文自动初始化
-
select,option如是
7
-
装饰配置的全局定义
-
通过全局定义装饰规则管理布局和共享展现修饰
-
方便全局统一修改
-
简化主体内容
8
-
开发和调试期间
-
源代码独立存在,独立编辑环境
-
支持XSD自动语法提示
-
修改后立即生效
-
无需手工处理,一切自动完成
-
与JSI,JSA集成,自动导出优化。
-
在上线时,可以将模版导出成直接的js代码,抛弃解析模块,提高运行效率。
-
也可以导出成json中间指令。并设计一个运行时砂箱机制,保证模版中脚本安全(防止脚本攻击)。
9
-
传统网页的事件链接方式
-
addEventListener,attachEvent
-
onclick=???
-
基于模版的链接方式
-
${action.onclick()}
-
${action.showMessage(‘title’,’content’)}
10
五行通天地 八卦定乾坤
——指令设计参考
-
Lite指令的表现方式
-
数值,字符串,数组,三种基本类型组合
-
可通过表达式自身解析程序解析这种中间代码
-
可以通过JSON格式的存储方式跨平台迁移
-
表达式指令设计
-
数据指令分以下五种类别
-
变量类型
-
常量类型
-
延迟节点
-
新数组节点
-
新键值集合节点
-
-
运算指令分按优先级分九重 (九组二十三条指令)。
-
操作符指令分三段:
000 1000 1
组内编号 | 优先级编号 | 操作元素个数标记
-
-
表达式解析过程和内部表示方法
-
将函数调用,参数合并,集合维护都表示为普通运算符。
-
逆波兰式单栈运算。
11
五行通天地 八卦定乾坤
——指令设计参考
-
模版指令设计
-
天地定位:
-
乾卦对应数字为:111=7;
-
对应的模版指令为:ADDON(插件扩展)。
-
坤卦对应数字为:000=0;
-
对应的指令为:EL表达式
-
-
山泽相离:
-
艮卦对应数字为:001=1;指令为:if 。
-
兑卦对应数字为:110=6;指令为:else 。
-
-
雷风相薄:
-
震卦对应数字为:100=4;
指令为:XML属性表达式 XML_TEXT 。
-
巽卦对应数字为:011=3;
指令为:ML文本表达式 XML_ATTR 。
-
-
水火不融:
-
离对应数字为:101=5;指令为:for。
-
坎对应数字为:010=2;指令为:break 。
分享到:
相关推荐
hi3516-liteos烧写.xml
YOLOv5-lite预训练权重文件(V5lite-e.pt/V5lite-s.pt/V5lite-g.pt/V5lite-c.pt) YOLOv5-lite预训练权重文件 YOLOv5-lite预训练权重文件 YOLOv5-lite预训练权重文件 YOLOv5-lite预训练权重文件 YOLOv5-lite预训练...
它将 Markdown 文件转换为符合 TEI Lite 标准的 XML 文件。 问题/拉取请求,欢迎。 要求 为了运行,这个脚本依赖于: sed xsltproc 标题字段 目前,此脚本可识别 TEI 标头的有限元素子集。 这些基本上都使用 ...
前端开源库-node-xml-litenode xml lite,node.js的纯javascript xml ansi/unicode SAX解析器
DE10-Lite_v.2.0.1_SystemCD
OSPF vrf-lite OSPF vrf-lite OSPF vrf-lite OSPF vrf-lite
【Navicat Lite-10.0.3】是【PremiumSoft-tm CyberTech Ltd.】官方发行的最后一个免费版本,注意:是最后一个。 Navicat Lite从这一版本开始不再提供免费版本,因此一些高级功能不能使用,但是其现有的功能也可以...
Huawei LiteOS 是华为面向IoT领域,构建的"统一物联网操作系统和中间件软件平台",以轻量级(内核小于10k)、低功耗(1节5号电池最多可以工作5年),快速启动,互联互通,安全等关键能力,为开发者提供 “一站式” ...
HedEx Lite全网最低积分下载!!! 华为的文档是真的逻辑清晰好用,就是HDX文件不方便做批注,HedEx Lite还下架了,用HedEx Lite来转换成PDF吧。哈哈哈哈。 HedEx Lite是轻量化的电子文档应用桌面工具,具有免安装,...
tensorflow模型tflite文件
efficientnet_lite0_fp32_2.tflite
华为liteos 系统开发指南
在Android使用深度学习模型实现图像识别(使用到的框架如下:Tensorflow Lite、Paddle Lite、MNN、TNN).zip在Android使用深度学习模型实现图像识别(使用到的框架如下:Tensorflow Lite、Paddle Lite、MNN、TNN)....
华为新版模拟器eNSP Lite产品手册,提前解锁华为新版模拟器eNSP Lite的基本情况、对安装设备的要求以及模拟器实验界面。华为新版模拟器eNSP Lite提前入门!
KLite 是基于STM32F103开发的抢占式多任务调度内核。理论上可以移植到Cortex-M0/M3/M4,目前在STM32F103/205/301/407上测试通过。 KLite的特点是简单实用,用最少的代码,实现最常用的多任务调度功能,简洁易用的API...
windows10生成lite.ai.toolkit.lib 包含mnn,tnn,onnxruntime,ncnn静态库 搬运大神 DefTruth的Lite.Ai.ToolKit: 一个轻量级的C++ AI模型工具箱,开箱即用。已经包括 100+ 流行的开源模型。这是一个根据个人兴趣...
华为NBIot操作系统LiteOS内核函数解析,基于LiteOS的NBIot开发必备!
X-lite完全 下载 第一次上传
后台管理模板Karmanta-lite
navicat9_lite, 21M轻便安装,体积小,功能强,适用于Mysql Oracle等数据库