vue在给每一个data的属性执行defineReactive函数,来达到数据绑定的目的。从代码中可以看到几点:
-
每一个数据绑定,都会new一个Dep(暂且叫他派发器),派发器的功能是什么?依赖收集以事件分发;
-
在属性get中,除了获取当前属性的值,还做了dep.depend()操作;
-
dep.depend的目的是什么?看Dep部分代码,很简单,其实就是依赖收集,将Dep.target需要收集的依赖进行添加到自己的派发器里
-
在属性set时,就是给属性改变值时,除了改变值意外,还执行了dep.notify()操作;
-
dep.notify的目的又是什么?看代码,依旧很简单,将自己派发器的所有依赖触发update函数;
第一个 hash 结构存储了 session 的一些基本信息和用户设置的一些属性信息
creationTime 创建时间
lastAccessedTime 最后访问时间
maxInactiveInterval 过期时长,默认是 30 分钟,这里保存的秒值
sessionAttr:user 这是我通过 session.setAttribute 设置进去的属性
第二个 string 结构,它没有值,只有一个 ttl 信息,标识这组 key 还能活多久,可以用 ttl 查看
第三个 set 结构,保存了所以需要过期的 key
|