model 和 view 实现思考

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了model 和 view 实现思考相关的知识,希望对你有一定的参考价值。

采用model.view = view 和  view.model=model 进行双向绑定,还有一种方案是采用id号进行绑定,viewmodel的views 和 models 属性存放所有的id 映射。目前采用第一种方案。

model实例化,实例化一个model,并且执行model.data=data操作,这样把data绑定到model,操作不能对data进行任何属性的增删,保持原状。避免开发者操作时引起不必要的麻烦。

data多层嵌套问题,只在deta级进行defineProperty和array的操作,以便实现监听。不针对model进行嵌套处理。这一环节延迟到view创建时进行。

监听:model采用defineProperty的set和get方法进行数据改变监听,array的监听采用重载array的push、pop、shift、unshift、fill、reverse方法。

当数据进行改变后,如执行 commodity.price = 50,触发model的change事件,model把该模型的渲染追加到viewmodel的渲染列表中。

view实例化,实例化一个view,需要针对view对应的element的子孙级elemnt进行view实例化,实例化后 view.el = element。如果存在x-model指令,还需要实例化view的model,采用从上而下的实例顺序。

渲染顺序 1、指令处理(在指令集一章进行阐述)  2、表达式处理(在表达式一章进行阐述)

 

以上是关于model 和 view 实现思考的主要内容,如果未能解决你的问题,请参考以下文章

MVP模式

MVC模式(Model View Controller)下实现数据库的连接,对数据的删,查操作

隔离 View 和 Model (Swift)

MVVM模式解析和在WPF中的实现

MVVM技术 - 的实现 @{}来进行 调用那个 DataBinding方法

安卓中MVP模式和RxAndroid的具体实现例子