model 和 view 实现思考
2024-10-19 00:19:50
采用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、表达式处理(在表达式一章进行阐述)
最新文章
- Java版本:识别Json字符串并分隔成Map集合
- C# v3微信 access token 过期处理的问题
- jQuery属性选择器.attr()和.prop()两种方法
- HDU-2222 Keywords Search(AC自动机--模板题)
- linux磁盘限额和进阶文件系统的管理 quota RAID LVM
- [转]Linux进程间通信——使用信号
- oracle游标循环的嵌套
- hdu3333(线段树)
- Android:安卓资源引用符号的含义
- sql注释
- Java Spring MVC
- OkHttp–支持SPDY协议的高效HTTP库
- #define命令的一些高级用法
- LeetCode &; Q189-Rotate Array-Easy
- .Net 从零开始构建一个框架之基本实体结构与基本仓储构建
- python3 特性
- tkinter pyqt同时呈现两个窗口
- spring上下文快速获取方法
- CentOS 7 镜像下载
- 支付宝 iphone6 指纹验证失败