位置: 编程技术 - 正文

轻松实现javascript数据双向绑定(轻松实现的英文)

编辑:rootadmin

推荐整理分享轻松实现javascript数据双向绑定(轻松实现的英文),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:轻松实现的近义词,轻松实现财富自由,轻松实现人生理想生日尾数农历,轻松实现每日赚三四百,轻松实现的近义词,轻松实现财富自由,轻松实现的成语,轻松实现纤腿梦的吸脂瘦腿术,内容如对您有帮助,希望把文章链接给更多的朋友!

双向数据绑定指的是当对象的属性发生变化时能够同时改变对应的UI,反之亦然。换句话说,如果我们有一个user对象,这个对象有一个name属性,无论何时你对user.name设置了一个新值,UI也会展示这个新的值。同样的,如果UI包含一个用于数据用户名字的输入框,输入一个新值也会导致user对象的name属性发生相应的改变。

许多流行的javascript框架,像Ember.js,Angular.js或者KnockoutJS都会把双向数据绑定作为其中的主要特性来宣传。这并不意味着从头开始实现它很难,也不意味着当我们需要这种功能的时候,使用这些框架是我们唯一的选择。内部的潜在思想事实上是相当基础的,实现它可以归纳为以下三点:

我们需要一种方式确定哪个UI元素绑定在哪个属性上。 我们需要监控属性和UI的变化 我们需要把所有绑定的对象和UI元素的变化传播出去。

尽管有好多种方式去实现这几点,一种简单高效的方法是我们通过发布订阅者模式来实现。方法很简单:我们可以使用定制的data属性作为HTML代码中需要绑定的属性。所有的绑定在一起的Javascript对象和DOM元素将会订阅这个发布订阅对象。任何时候我们检测到无论是Javascript对象亦或是HTML的input元素的变化,我们都是把事件代理传递给发布订阅对象,然后通过它把所有发生在绑定的对象和元素的的变化传递和广播出去。

一个用jQuery实现的简单例子

通过jQuery实现我们上面讨论的东西是相当简单明了的,因为作为一个流行的库,它让我们很简单的实现订阅和发布DOM事件,同时我们也可以定制一个:

轻松实现javascript数据双向绑定(轻松实现的英文)

至于javascript对象,下面是最小化的user数据模型实现的例子:

现在,无论何时我们想要绑定一个对象的属性到UI上,我们只要在对应的HTML元素上设置合适的data属性。

input输入框上值得变化会自动的映射到user的name属性,反之亦然。大功告成!

不需要jQuery的实现方式

现在的大部分项目一般jQuery都已经在使用啦,所以上面的例子是完全可以接受的。但是如果我们需要完全不依赖jQuery,那么该怎么实现呢?好吧,事实上其实也不难办到(特别是当我们把对IE的支持只提供IE8以上的支持)。最后,我们只是要通过发布订阅者模式来观察DOM事件而已。

数据模型可以保持不变,除了在setter中对jQuery中trigger方法的调用,我们可以通过我们在PubSub中自定义的publish方法来代替。

通过实例讲解,并又一次通过一百行不到,又可维护的纯javascript完成了我们想要的结果,希望对大家实现javascript数据双向绑定有所帮助。

window.setInterval()方法的定义和用法及offsetLeft与style.left的区别 定义和用法setInterval()方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。setInterval()方法会不停地调用函数,直到clearInterval()被调用或窗口被

js clearInterval()方法的定义和用法 此方法能够取消setInterval()方法设置的定时器。此方法的参数必须是要取消相应的setInerval()方法的返回值。点击可参阅更多window对象的属性和方法。语法

js window对象属性和方法相关资料整理 window对象有以下方法:openclosealertconfirmpromptsetTimeoutclearTimeoutsetIntervalclearIntervalmoveBymoveToresizeByresizeToscrollByscrollTofindbackforwardhomestopprintblurfocuscaptureEventenab

标签: 轻松实现的英文

本文链接地址:https://www.jiuchutong.com/biancheng/383722.html 转载请保留说明!

上一篇:谈谈对offsetleft兼容性的理解(谈谈对人才是第一资源的理解)

下一篇:js clearInterval()方法的定义和用法

  • 并入房屋价值的土地是否交房产税?
  • 企业所得税减免所得税额计算公式
  • 实收资本印花税是营业账簿吗
  • 股东投资的钱放在哪里
  • 企业销售折扣折让会计分录
  • 专项应付款和政府补助的区别是什么
  • 收据四联分别叫什么
  • 发票认证后怎么打明细
  • 企业存货实际成本的构成包括
  • 房地产企业交纳所得税吗
  • 增值税一般计税方法
  • 出口零退税率是什么意思
  • 企业所得有哪些税种
  • 新房购置税怎么算2022
  • 有留抵税额要考虑税负吗
  • 售后回租的实际操作流程
  • 公司法人要交什么税
  • 公司开展文体活动总结
  • 没有业务来往可以报税吗
  • 增值税专票盖章盖在哪里
  • 小规模纳税人出租不动产税率是5%还是3%
  • 本单位员工投稿怎么写
  • 工伤赔款付医药费怎么会计分录
  • 一年期电子银行承兑汇票
  • 投标标费退回怎么做分录
  • 现金银行存款日记账日清月结
  • 电子商务平台怎么下载中标通知书
  • 双系统跳过磁盘检测
  • Windows自带的截图
  • 网页游戏玩着卡
  • 工程咨询费用取费标准
  • win7玩什么游戏流畅
  • php ftp函数
  • 预计负债的概念是什么
  • 营业外收支的内容
  • 微信小程序实现支付功能
  • 常用的3个第三方类库
  • 阿布鲁佐的特点
  • CSS: overflow-anchor 固定滚动到底部,随着页面内容增多滚动条自己滚动展示最新的内容
  • 销售提成收入证明怎么写
  • 机器学习论文源代码浅读:Autoformer
  • 红字发票进项转出当期
  • 简述时期指标和时点指标的特点
  • ls -lh命令
  • 企业投资计入什么科目
  • 预先支付的房租
  • 退票产生的费用如何报销
  • SQLite教程(十):内存数据库和临时数据库
  • 国税办税人员怎么解绑
  • 10万销售额是含税还是不含税
  • 租房押金会计分录是什么
  • 所得税预缴申报表中营业成本怎么计算
  • 营改增后建筑业怎么开票
  • 建行E信通贴现需要发票吗
  • 小数点引起小数大小变化
  • 房地产企业如何结转成本
  • 住宿发票没有写天数
  • 收到合同预付款在账上怎么记
  • 进项发票和销项发票怎么抵扣
  • 转出投资款计入现金流量表的哪里
  • 研发支出的帐务处理
  • 股权变更需要交哪些税
  • 合伙企业应该用什么会计制度
  • mysql外键是什么意思
  • 什么是格式良好的xml文档
  • win7系统IE浏览器一点就闪退
  • svchost进程可以结束吗
  • mac怎么设计网页
  • cocos2dx框架
  • cocos2dx-3.1.1 win8+eclipse+android开发 初学者容易迷惑的两个问题
  • perl字符串替换 ~s
  • jqgrid获取选中行
  • android 启动器 设置
  • js生成页面
  • js选择框全选
  • js如何判断是否有定时器功能并清除
  • 税控盘税务数字书驱动找不到应用程序是咋回事
  • 组织收入原则是应收尽收坚决不收过头税费
  • 个税汇算清缴申报方式选哪个
  • 科研用地是否缴纳土地使用税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设