zozoh / walnut

项目代号为 walnut
Apache License 2.0
5 stars 0 forks source link

#前端问题# obrowser初始化过程 #79

Open pangwu86 opened 8 years ago

pangwu86 commented 8 years ago

里面组件的初始化都不是在redraw中 而是由setData作为触发,然后通过子组件的update方法执行“redraw”相关操作,这样的写法太隐蔽了吧

zozoh commented 8 years ago

UI 的 redraw 是在 DOM 初始化完毕后,做的自定义操作 很多 UI 比如 obrowser 对应的各个文件的编辑器,只有被 setData 以后,控件才知道怎么绘制 所以,这些编辑器统一提供 update 的方法,供 obrowser 来调用

貌似没有更好的办法哦

pangwu86 commented 8 years ago

@zozoh 这就产生一个比较诡异的问题,一般来说绘制页面操作都是redraw,update听上去就是更新数据(其实按你的说法也就是绘制数据),只不过现在的update是结合了两步的操作

感觉上不太好的一点就是,比如说大家了解了zui的规约就是redraw中绘制,结果看了一下这个ui,发现根本没有redraw方法,就显得有点奇怪

就是说有规约,但实际操作并不是如此

如果说一个控件只有在有数据的情况下才能被绘制,那么是不是这个控件少了一个“无数据”的状态呢? 如果是me写的话,更倾向于在redraw中画出页面(无数据的会有一些特殊处理),数据被update进来后再对页面进行更新,这样也这个update方法也更像是真正的update

zozoh commented 8 years ago

总之,是希望尽量把 update 里面的逻辑放到 redraw 里。 同意。 我也是能放就放的。 如果你遇到能这么修改的 UI,列在这里,稍后咱们统一修改咯

zozoh commented 7 years ago

这个也可以关了吧 @pangwu86