DataBinding 与 ViewBinding
DataBiding 与 ViewBinding到不至于分不清,但是单词确实很相识。
之前简单写了一篇 《让人又爱又恨的DataBinding》这里简单说一下ViewBinding
与数据绑定的对比
DataBinding 与 ViewBinding 均会生成可用于直接引用视图的绑定类。但是,视图绑定旨在处理更简单的用例,与数据绑定相比,具有以下优势:
更快的编译速度:ViewBinding不需要处理注释,因此编译时间更短。 易于使用:ViewBinding不需要特别标记的 XML 布局文件,因此在应用中采用速度更快。在模块中启用ViewBinding后,它会自动应用于该模块的所有布局。
反过来,与数据绑定相比,ViewBinding也具有以下限制:
- ViewBinding 不能用于直接在 XML 布局文件中声明动态界面内容。
- ViewBinding不支持 双向数据绑定
考虑到这些因素,在某些情况下,最好在项目中同时使用ViewBinding和数据绑定。您可以在需要高级功能的布局中使用数据绑定,而在不需要高级功能的布局中使用视图绑定。
简单对比
ViewBinding 编译更快 ViewBinding 更轻量 ViewBinding 不需要太多使用成本 ViewBinding 功能更单一 DataBinding 功能会多一些,也更复杂
ViewBinding 真的很弱吗?
ViewBinding 真的很弱吗?只是快?简单?
当然不是,ViewBinding 逻辑上可以实现DataBinding 所有功能,只是需要配合更多一些代码。而这个代码DataBinding封装好了,只是在写DataBinding内容的时候会直接把这些写上,ViewBinding只要也把这些写上,一样可以实现这些功能。但是 ViewBinding 最大的优势还是对布局的0入侵。ViewBinding对布局没有任何改变,过去什么样就什么样,过去的布局代码拿来直接用,不需要学习DataBinding 复杂的语法,相当友好一些
选择?
DataBinding 与 ViewBinding 现在都很成熟。至于如何选择,可以根据自己情况,如果项目组没有人用DataBinding可以先用ViewBinding。这个还是很好的,即使会用也可以考虑ViewBinding。
目前项目推荐使用官方的架构指南,新的架构指南,其实已经帮View 层瘦身了,那么ViewBinding这个轻量级框架有时候会为你提供更灵活的效果。