Java中怎么实现实现一个简单得数据响应系统
发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,这篇文章主要介绍"Java中怎么实现实现一个简单得数据响应系统",在日常操作中,相信很多人在Java中怎么实现实现一个简单得数据响应系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
千家信息网最后更新 2024年11月25日Java中怎么实现实现一个简单得数据响应系统
这篇文章主要介绍"Java中怎么实现实现一个简单得数据响应系统",在日常操作中,相信很多人在Java中怎么实现实现一个简单得数据响应系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Java中怎么实现实现一个简单得数据响应系统"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1、Dep
其实,这就是一个依赖收集的容器, depend
收集依赖, notify
触发依赖
class Dep{ constructor() { this._subs = []; } depend () { this._subs.push(Dep.target) } notify() { this._subs.forEach(item => { item.fn(); }) }}// 其实就是 dep 和 watcher 基情满满的开始,watcher 中用到// 通过一个全局属性来存 watcherDep.target = null;function pushTarget(watch) { Dep.target = watch;}function popTarget() { Dep.target = null;}
2、了解 obverser
递归,将 data 对象所有属性转化为访问器属性
// 转为访问器属性function defineReactive (obj, key, val, shallow) { // 创建一个依赖收集容器 let dep = new Dep(); let childOb = !shallow && observe(val) Object.defineProperty(obj, key, { enumerable: true, configurable: true, get: function reactiveGetter () { if(Dep.target) { // 收集依赖 dep.depend(); } return val; // ... }, set: function reactiveSetter (newVal) { if(newVal === val) return; // 继续递归遍历 observe(newVal); // 触发依赖 dep.notify(); // ... } })}class Observer{ constructor(data) { this.walk(data); } walk(data) { const keys = Object.keys(data) for (let i = 0; i < keys.length; i++) { defineReactive(data, keys[i], data[keys[i]]) } }}// 递归,将 data 对象所有属性转化为访问器属性function observe (data) { if(Object.prototype.toString.call(data) !== '[object Object]') return; new Observer(data);}
此时就可以把任意一个对象的全部属性转为访问器
3、了解 watch 和 observer
const data = { a: 1, b: 2}// 首先监控一个对象observe(data);
watcher
的主要功能是检测某个属性,当属性变化时触发一个回调
class Watcher{ /** * @params {Function} exp 一个属性表达式 * @params {Function} fn 回调 */ constructor(exp, fn) { this.exp = exp; this.fn = fn; // 存 watcher // Dep.target = this; pushTarget(this); // 先执行一次表达式函数,会在调用过程中, // 触发到 data.a 的访问器, data.a 的 get 被执行, // 触发 dep.depend() 开始收集依赖 this.exp(); // 释放 Dep.target popTarget(); }}// new Watcher 这样一个依赖就被收集了new Watcher(() => { return data.a + data.b;}, () => { console.log('change')})
4、触发依赖
data.a = 3; // changedata.b = 3; // change
到此,关于"Java中怎么实现实现一个简单得数据响应系统"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
属性
数据
系统
对象
学习
递归
容器
就是
更多
表达式
帮助
实用
接下来
中用
全局
函数
功能
文章
方法
理论
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
长沙软件开发培训选哪家
中国台湾erp软件开发视频
打开数据库xs.dbc的命令是
论述数据库系统的结构
信息中心软件开发项目名称
湖南工业大学网络安全竞赛
曙光服务器光模块
英国网络安全专业研究生
香港云服务器比香港服务器更快吗
软件开发好还是电子商务好
php连接数据库成功返回
维护数据库系统
数据库怎么改表的字段
软件开发大专生
常熟品质网络技术专业服务
炉前热分析仪软件开发论文
无法登陆艾尔登法环游戏服务器闪退
沧州网络安全教育平台
新冠疫情期间网络安全
直销报道结算软件开发
贵州纵横网络技术
魔兽世界六零数据库天赋
云服务器怎么增加磁盘
数据库中时间的字段类型
新中大 服务器连接
mac数据库建模工具
vsco服务器超时
软件开发面试项目介绍
火影忍者无差别服务器
皮书数据库包含的资源类型