[发明专利]一种MVVM设计模式JavaScript库实现方法在审

专利信息
申请号: 201911326965.9 申请日: 2019-12-20
公开(公告)号: CN110968318A 公开(公告)日: 2020-04-07
发明(设计)人: 万达;董世永 申请(专利权)人: 创盛视联数码科技(北京)有限公司
主分类号: G06F8/38 分类号: G06F8/38;G06F8/30
代理公司: 北京智沃律师事务所 11620 代理人: 吴志宏
地址: 100083 北京市海淀区学院*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 mvvm 设计 模式 javascript 实现 方法
【权利要求书】:

1.一种MVVM设计模式JavaScript库实现方法,包括以下步骤:

S1:对于数据的所有属性设置监听器Observer;

S2:设计订阅者Watcher,收到属性的变化通知并执行相应的函数,从而更新视图;

S3:将Observer和Watcher关联,实现简单的双向绑定数据;

S4:订阅者Watcher接收到相应属性的变化,就会执行对应的更新函数,从而更新视图。

2.根据权利要求1所述的MVVM设计模式JavaScript库实现方法,其特征在于:步骤S1中,监听器Observer采用Object.defineProperty(),通过递归方法遍历所有属性值。

3.根据权利要求1所述的MVVM设计模式JavaScript库实现方法,其特征在于:步骤S2中,订阅者Watcher的实现包括以下步骤:

1)创建一个容纳订阅者的消息订阅器Dep,负责收集订阅者,然后在属性变化的时候执行对应订阅者的更新函数;

2)监听器Observer在其get函数执行了添加订阅者Wather的操作,在订阅者Watcher初始化时触发对应的get函数,去执行添加订阅者操作。

4.根据权利要求3所述的MVVM设计模式JavaScript库实现方法,其特征在于:步骤2)中,订阅者Watcher初始化时才需要添加订阅者,在订阅器进行如下操作:在Dep.target上缓存下订阅者,添加成功后再将其去掉。

5.根据权利要求1所述的MVVM设计模式JavaScript库实现方法,其特征在于:步骤S3中,双向绑定数据通过解析器Compile来做解析和绑定工作,完成指令的解析、初始化、编译三个过程,包括以下步骤:

1)解析HTML模板指令,并替换模板数据,初始化视图;

2)将模板指令对应的节点绑定对应的更新函数,初始化相应的订阅器;

3)遍历各个节点,对含有相关指定的节点进行处理;

4)获取到最外层节点后,调用compileElement函数,对所有子节点进行判断,如果节点是文本节点且匹配{{}}这种形式指令的节点就开始进行编译处理,编译处理首先需要初始化视图数据,对应步骤1),接下去需要生成一个并绑定更新函数的订阅器,对应步骤2)。

6.根据权利要求5所述的MVVM设计模式JavaScript库实现方法,其特征在于:步骤2)中,解析模板首先获取到dom元素,然后对含有dom元素上含有指令的节点进行处理,通过先建一个fragment片段,将需要解析的dom节点存入fragment片段里再进行处理。

7.根据权利要求5所述的MVVM设计模式JavaScript库实现方法,其特征在于:步骤3)中,处理是指对带有'{{变量}}'形式的指令进行处理。

8.根据权利要求5所述的MVVM设计模式JavaScript库实现方法,其特征在于:步骤4)中,更多指令的解析编译在compileElement函数加上对其他指令节点进行判断,然后遍历其所有属性,看是否有匹配的指令的属性,如果有的话,就对其进行解析编译。

9.根据权利要求5所述的MVVM设计模式JavaScript库实现方法,其特征在于:通过添加一个v-model指令和事件指令的解析编译,对于这些节点使用函数compile进行解析处理,所述compile函数是挂载Compile原型上的,首先遍历所有节点属性,然后再判断属性是否是指令属性,如果是的话再区分是哪种指令,再进行相应的处理。

10.根据专利要求5所述的MVVM设计模式JavaScript库实现方法,其特征在于:初始化SelfVue类时,首先SelfVue通过Compile解析器扫描和解析每个HTML节点的相关指令,并初始化模板数据以及初始化相应的监听器、订阅器;通过监听器Observer劫持并监听所有属性,如果有变动,就通知订阅者Watcher,订阅者能够收到属性的变化通知并执行相应的函数,从而更新视图以实现数据的双向绑定。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于创盛视联数码科技(北京)有限公司,未经创盛视联数码科技(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201911326965.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top