grootJs的vm结构
按看这段代码生成的vm
groot.view("myview", function (vm, ve) {
vm.say = "hello word!";
})
groot.sweep();

每个 groot.vew();
都会生成一个对象
对象放在 groot.vms里
比如 “myview”
就是 groot.vms["myview"],就能访问到
我们在vm里定义了一个属性say
我们看到 经过框架转换
多了一个sayRander();
当say 改变了 调用sayRander()就能更新我们的视图
我们还看到一个 $$ve 这里是存放我们的的事件的
比如这段代码
groot.view("myview", function (vm, ve) {
vm.say = "hello word!";
ve.hello=function(){
vm.say="hello word!";
vm.sayRender();
}
})
生成的 vm

我们在看一个复杂点的moudle 生成的 vm
看这段代码
groot.view("myview", function (vm, ve) {
vm.data = {
"name": "张三", "sex": "男"
}
ve.hello = function () {
if (vm.data.name == "张三") {
vm.data.name = "李四"
} else {
vm.data.name = "张三"
}
vm.data.nameRender();
}
})
groot.sweep();

这里大家可以看到
vm.data 也生成了 一个 dataRender();
并且data 两个属性 name sex 也都有render 方法
除此之外 还多了 两个属性 一个方法
两个属性为 $$objectSelectordata,$$objectdata
一个方法 parent()
parent() 方法是返回父对象的
$$objectSelectordata 是储存的 vm.data这个对象对应的html代码片段的选择器
因为页面可能有多个数组对应这个对象
所以$$objectdata这个对象 是一个数组,存了 每一个html代码片段的选择器和对应的html片段(绑定以前的html片段)
这个 如果更新一个整个data的时候 只要把 这个快html 恢复到绑定数据前 ,重新扫描一遍就可以了
数组和这个类似,但是是有些不一样 大家可以自己看下
我们看到了 hello 这个事件
grootJs的vm结构的更多相关文章
- 深入grootJs(进阶教程)
深入grootJs 这篇教程的原则是把grootJs原理讲透,主要真正理解了原理才能用起来随心所欲 mvvm模式简介 grootJs的vm结构 扫描函数sweep 垃圾回收的原理 加载器中的预编 ,控 ...
- 图解Android - Zygote, System Server 启动分析
Init 是所有Linux程序的起点,而Zygote于Android,正如它的英文意思,是所有java程序的'孵化池'(玩过星际虫族的兄弟都晓得的).用ps 输出可以看到 >adb shell ...
- JNI(5)The Invocation API
调用API允许软件提供商加载Java VM 到任意的本地应用中.供应商可以提供支持Java的应用程序而无需链接Java VM的代码. 概述 下面代码展示了通过调用API如何使用函数.这个例子中C++代 ...
- JDK 11中的ZGC-一种可扩展的低延迟垃圾收集器
# 背景正如我们所知道的在JDK 11中即将迎来ZGC(The Z Garbage Collector),这是一个处于实验阶段的,可扩展的低延迟垃圾回收器.本文整合了外网几篇介绍ZGC的文章和代码. ...
- APR介绍
http://blog.csdn.net/jmshl/article/details/6773731 APR分析-整体篇 由于部门所使用的底层库与Apache Server有着“一定的渊源”,所以总有 ...
- Java 9的JDK中值得期待的:不仅仅是模块化
在多次延期后,Java 9将于9月21日以Java开发工具包9的形式出现,这是自2014年3月以来,Java标准版的第一次重大升级.官方列出了JDK 9的大约90个新特性,模块化是最主要的一个.将Ja ...
- 18课 Vue第一节
Q1: url-loader必须搭载file-loader?Q2: 图片的打包问题,如果直接写在img标签里用src引用图片,该如何打包?Q3: 如何根据不同的页面html模板打包与之对应的css/j ...
- 使用mark-sweep算法的垃圾回收器
在我写C++代码的那些时间里,我没有写过垃圾回收器,也没有实现过自己的内存分配器,这方面的文章倒是看了不 少.比如我在写C#代码时只管new而不需要释放,我也明白有个垃圾回收器在那帮我回收那些堆上的对 ...
- 运行Java -jar somefile.jar时发生了什么(二)
(6)Java.c中的LoadMainClass 位置jdk/src/share/bin/java.c 该方法负责载入main函数所在的类. 该方法首先载入sun.launcher.LauncherH ...
随机推荐
- Google Guava之--cache
一.简介 Google Guava包含了Google的Java项目许多依赖的库,如:集合 [collections] .缓存 [caching] .原生类型支持 [primitives support ...
- jquery实践案例--验证电子邮箱
<input type="email" name="email" id="email" value="" onpa ...
- 烂泥:KVM使用裸设备配置虚拟机
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 何谓裸设备?百度百科显示: 裸设备(raw device),也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊块设备文件 ...
- 10分钟制作UWP汉堡菜单
什么是汉堡菜单? 汉堡菜单,指的是一个可以弹出和收回的侧边栏.在UWP和Android应用中,汉堡菜单都非常常见. 首先我们列出所有需要掌握的前置知识: 1,SplitView 2,StackPane ...
- mysql、sql server、oracle数据库分页查询及分析(操作手册)
1.mysql分页查询 方式1: select * from table order by id limit m, n; 该语句的意思为,查询m+n条记录,去掉前m条,返回后n条记录.无疑该查询能够实 ...
- 有用的MySQL语句
摘自onefish资料库 1. 计算年数你想通过生日来计算这个人有几岁了. SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofb ...
- BusyBox Init
嵌入式系统内核启动后的第一个程序就是init,一般位于/sbin/init(一般是符号链接到/bin/busybox), 但有些也会直接放在根目录下如linuxrc,busybox的init不支持多级 ...
- jdk环境搭建
win7+jdk环境变量配置 进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置:1.下载jdk(http://java.sun.com/javase/downloads/inde ...
- [转载]iTOP-4412开发板搭建最小linux系统
本文转迅为电子论坛:http://www.topeetboard.com 最小linux系统所需资料下载:http://pan.baidu.com/s/1kTNan0j 开发板不仅可以运行Androi ...
- 【OJ】PAT-A解题报告
手速慢...思考速度慢...是撑不到最后boss的...共勉 ========================我是日常分割线=========================== 1010. Radi ...