挣扎在逻辑抽象和业务环境的表单设计

广告位招租
扫码页面底部二维码联系

这两天一直在写一个基于业务逻辑的表单抽象【本文首发于唐霜的博客】【本文受版权保护】架构。听上去多么简单的一件事,不就是个表【版权所有】唐霜 www.tangshuang.net【作者:唐霜】单么。然而,拥有这样想法的我果然还是太年原创内容,盗版必究。【转载请注明来源】轻。表单,可以说是web开发中最复杂的交转载请注明出处:www.tangshuang.net【作者:唐霜】互领域之一。单纯把表单理解为用户可以填写【访问 www.tangshuang.net 获取更多精彩内容】【本文受版权保护】和提交的交互元素,那就太无知了,殊不知,原创内容,盗版必究。【原创内容,转载请注明出处】一个表单除了填写和提交两个动作之外,还有【原创内容,转载请注明出处】【未经授权禁止转载】一大堆可能需要的动作,例如数据验证、联动原创内容,盗版必究。本文作者:唐霜,转载请注明出处。、按条件填写项、复原和暂存、创建和编辑表【本文首发于唐霜的博客】【未经授权禁止转载】单公用等等。这些东西还完全没有考虑具体业【版权所有】唐霜 www.tangshuang.net【未经授权禁止转载】务中的特殊逻辑,单纯从抽象层面去归纳而已【作者:唐霜】本文作者:唐霜,转载请注明出处。

转载请注明出处:www.tangshua转载请注明出处:www.tangshuang.net本文作者:唐霜,转载请注明出处。ng.net【版权所有】唐霜 www.tangshu【本文受版权保护】【版权所有】唐霜 www.tangshuang.netang.net著作权归作者所有,禁止商业用途转载。

而且,在现代SPA应用开发中,表单跟jq【关注微信公众号:wwwtangshuangnet】【版权所有】唐霜 www.tangshuang.netuery时代也有巨大区别。SPA是数据驱原创内容,盗版必究。【关注微信公众号:wwwtangshuangnet】动型开发模式,即界面如何展示,完全由数据【版权所有,侵权必究】转载请注明出处:www.tangshuang.net(状态)驱动。这就会遇到很多问题,数据驱【原创不易,请尊重版权】本文作者:唐霜,转载请注明出处。动的开发模式,不可避免的需要模板,模板中【本文受版权保护】转载请注明出处:www.tangshuang.net使用变量,并映射到实际提供的数据中。在模【本文受版权保护】转载请注明出处:www.tangshuang.net板中使用变量并不能方便的对应的数据层去,【原创内容,转载请注明出处】著作权归作者所有,禁止商业用途转载。比如你在模板使用一个for in的循环,未经授权,禁止复制转载。【本文受版权保护】那么就有item和list。list好理转载请注明出处:www.tangshuang.net著作权归作者所有,禁止商业用途转载。解,但是,如果将item又传回给数据层呢本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshuang.net

【关注微信公众号:wwwtangshua本文版权归作者所有,未经授权不得转载。【访问 www.tangshuang.net 获取更多精彩内容】ngnet】【访问 www.tangshuang.n转载请注明出处:www.tangshuang.net著作权归作者所有,禁止商业用途转载。et 获取更多精彩内容】转载请注明出处:www.tangshua【版权所有】唐霜 www.tangshuang.net本文作者:唐霜,转载请注明出处。ng.net

除了数据层和模板映射的问题,表单的数据更【原创不易,请尊重版权】原创内容,盗版必究。改其实也是麻烦事。它依赖于框架内的事件系【版权所有】唐霜 www.tangshuang.net本文版权归作者所有,未经授权不得转载。统,也就是说,现代前端框架,无一例外的要【关注微信公众号:wwwtangshuangnet】转载请注明出处:www.tangshuang.net求你通过绑定数据,依靠自己内部的事件系统本文作者:唐霜,转载请注明出处。【转载请注明来源】,当用户输入数据时,将数据的变化绑定到数原创内容,盗版必究。【版权所有】唐霜 www.tangshuang.net据层去。这也就产生了一系列问题,几乎没有【版权所有】唐霜 www.tangshuang.net本文作者:唐霜,转载请注明出处。一个表单架构能够具备通用性。开发者无法在【版权所有】唐霜 www.tangshuang.net转载请注明出处:www.tangshuang.net数据结构的便捷性、数据响应的便捷性、数据【原创不易,请尊重版权】【原创内容,转载请注明出处】校验的便捷性之间得到平衡,它们一定是互斥【版权所有,侵权必究】【版权所有】唐霜 www.tangshuang.net的。我这两个星期都栽在这个问题上,无法自著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。拔。

【本文受版权保护】本文作者:唐霜,转载请注明出处。【原创内容,转载请注明出处】【本文首发于唐霜的博客】

而且,当一些业务的特殊逻辑加入的时候,这【本文首发于唐霜的博客】【版权所有】唐霜 www.tangshuang.net个事情就更复杂。例如,表单中的某个(些)【本文受版权保护】【转载请注明来源】项目,仅在某个选项为true的时候才展示转载请注明出处:www.tangshuang.net本文作者:唐霜,转载请注明出处。出来。这个听上去简单,但是,你要知道,当原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。用户在true和false之前切换的时候【版权所有,侵权必究】本文作者:唐霜,转载请注明出处。,那些被显示/隐藏的被填写的数据要不要保著作权归作者所有,禁止商业用途转载。著作权归作者所有,禁止商业用途转载。留?另一个复杂的问题,就是数据源。一个下原创内容,盗版必究。未经授权,禁止复制转载。拉列表,它的选项列表可能是根据当前选中的【作者:唐霜】【本文受版权保护】某个项来决定,当未选中时,或重新选择时,本文作者:唐霜,转载请注明出处。【原创内容,转载请注明出处】要进行切换。这个问题听起来尚好解决,然而本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。,当要求,其中某个选项为某值时,要求表单【关注微信公众号:wwwtangshuangnet】【转载请注明来源】中其他某个项必须与它互斥……这样的特殊逻原创内容,盗版必究。【本文首发于唐霜的博客】辑,不是不可能存在,我就遇到了,并且敲破【访问 www.tangshuang.net 获取更多精彩内容】未经授权,禁止复制转载。了自己的脑袋。

【转载请注明来源】未经授权,禁止复制转载。

真希望有人能够将表单这回事进行深度抽象,未经授权,禁止复制转载。【作者:唐霜】大老,靠你了……

著作权归作者所有,禁止商业用途转载。【转载请注明来源】著作权归作者所有,禁止商业用途转载。