issues
search
switer
/
switer.github.io
Personal homepage
https://switer.github.io
5
stars
0
forks
source link
Web UI, 声明大于编程 // TBD
#16
Open
switer
opened
10 years ago
switer
commented
10 years ago
Why declarative
我们使用HTML去描述页面结构,而HTML是一门声明式的语言,声明式编程语言描述UI会比过程式编程的Javascript更直白,少绕弯
JS 更多倾向于辅助添加界面的交互行为
我们通过封装JS的行为,在HTML上以声明式的方式使用
原因是HTML为主?JS为辅?(操作对象,HTML声明式语法操作的是自身属性/DOM,省却了选中的过程)
封装JS行为,以声明式方式添加在HTML上与传统的在HTML上添加模板逻辑在本质上有何差异? (传统的模板逻辑只是将行为逻辑承载对象从JS文件中迁移到HTML上,本质上还是JS的语法逻辑, 和声明式没有关系。JS逻辑写在模板里会导致模板里的JS逻辑脱离模块的JS上下文环境,形成功能孤岛,甚至僵尸逻辑,而且大量的JS逻辑在页面中会扰乱了HTML声明式的语法环境)
简单明确的生命过程,只在自身DOM ready后添加行为,处理被准备好的数据(正因为是简单所以才直白)
假如 HTML 作为组件模块入口,HTML 承担着控制器的身份,HTML指令(Such as DOM属性)模块该对 DOM 做些什么(What)而不是怎样作(How),弱逻辑
Javascipt 辅助
HTML的声明行为,是在DOM ready之后附加的操作,有业务需求要在DOM ready之前(被渲染前)进行DOM处理(例如根据数据动态决定是否添加DOM)
声明式语法的封装
数据的加载逻辑,HTML模板只负UI职责,使用数据、渲染数据。数据加载需要交给JS处理
Why declarative
Javascipt 辅助