当前位置: 首页 > article >正文

实现双向数据绑定

文章目录

  • 1 实现双向数据绑定

1 实现双向数据绑定

通过 Object.defineProperty 方法对 obj.text 属性进行了数据劫持,实现了当 obj.text 的值发生变化时,自动更新输入框和页面上的 < span > 元素的内容。同时,通过监听输入框的 keyup 事件,实时更新 obj.text 的值。

<input id="input" type="text" placeholder="请输入内容">
<span id="span"></span>
let obj = {};
let input = document.getElementById('input');
let span = document.getElementById('span');
input.addEventListener('keyup', function(e) {
	obj.text = e.target.value;
});
Object.defineProperty(obj, 'text', {
	configurable: true,
	enumerable: true,
	get() {
		console.log('获取数据了');
	},
	set(newValue) {
		console.log('更新数据了');
        input.value = newValue;
        span.innerHTML = newValue;
	}
});

http://www.kler.cn/a/540437.html

相关文章:

  • 嵌入式linux系统中VIM编辑工具用法与GCC参数详解
  • DeepSeek训练成本与技术揭秘
  • Photoshop自定义键盘快捷键
  • android的Compose 简介
  • 51单片机之引脚图(详解)
  • 2025.1.8(qt图形化界面之消息框)
  • 局域网使用Ollama(Linux)
  • 智慧校园与理工大学:信息技术在高等教育中的应用
  • 使用Python爬虫获取淘宝商品评论API接口数据
  • 前瞻技术解密:未来生活的改变与机遇
  • 1-portal认证功能
  • CPLD实现SPI通信
  • 使用XMLHttpRequest发送带查询参数的 GET 请求并动态展示数据
  • [LLM面试题] 指示微调(Prompt-tuning)与 Prefix-tuning区别
  • ndk 编译opencv(去除libandroid.so mediandk依赖)
  • 单片机复杂项目的软件分层设计
  • 构建jdk17包含maven的基础镜像
  • [安装FlashAttention] CUDA版本 和 Nvidia驱动版本
  • [Unity角色控制专题] 详细解释如何使用Character Controller配合脚本实现跳跃功能与落地抖动?
  • docker的卷映射如何手动指定位置
  • 信创领域的PostgreSQL管理员认证
  • 2.10学习总结
  • Qt中QTreeWidget的使用
  • 查出 product 表中所有 detail 字段包含 xxx 的完整记录
  • Linux常用命令——磁盘管理类
  • RTD2775QT/RTD2795QT瑞昱显示器芯片方案