Java中怎么实现实现一个简单得数据响应系统
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍"Java中怎么实现实现一个简单得数据响应系统",在日常操作中,相信很多人在Java中怎么实现实现一个简单得数据响应系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
云服务器cvm和轻量
阿里云服务器降配之后再升配
一个应用程序连接多个数据库
服务器系统如何测硬盘
北京微型企业财务软件网络技术
宝塔给sql数据库绑定域名
PIR数据库全称
软件开发在北方可以吗
2021年数据库工程师考证时间
云课堂网络安全
网络技术2018题库软件
上海浦东新区网络安全与通报中心
域名访问服务器
数据库列的取值类型可以相同
工业企业的网络安全
成都软件开发人员工资标准
网络技术需要看什么书
万方数据库期刊
数据库技术发展的各阶段
学习软件开发需要做什么
服务器密码怎么才安全
华为网络技术学院昆明接口人
天津易狐网络技术有限公司
键值数据库的基本概念
国家网络安全宣传周将于每年九月
库存管理用什么软件开发
易霖金桥网络技术有限公司
网络安全应急响应准备
中职生网络安全试题
万方数据库期刊