我的编程空间,编程开发者的网络收藏夹
学习永远不晚

前端的数据绑定技术有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

前端的数据绑定技术有哪些

本篇内容主要讲解“前端的数据绑定技术有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“前端的数据绑定技术有哪些”吧!

01 脏值检测

如果绑定的数据过多,脏值检测可能会造成性能问题,因为每次改变值,都需要进行轮询改变对应的值。

<!DOCTYPE html> <html lang="zh-CN">  <head>   <meta charset="UTF-8">   <meta name="viewport" content="width=device-width, initial-scale=1.0">   <title>脏值检测</title> </head>  <body>   <h4>脏值检测</h4>   <button a-click="add" style="width: 40%; height: 50px;">增加</button>   <button a-click="reset" style="width: 40%; height: 50px;">重置</button>   <div>     <span>第一个绑定数据:</span>     <span id="aa" style="color:#CC6600" a-bind="counter"></span>   </div>   <div>     <span>第二个绑定数据:</span>     <span style="color:#CCCC33" a-bind="counter"></span>   </div>   <div>     <span>第三个绑定数据:</span>     <span style="color:#336699" a-bind="counter"></span>   </div>   <script type="text/javascript">     window.onload = function () {       // 首次加载需要初始化数据       apply()       bind()     }     // data     let counter = 0     // methods     function add() {       counter++     }      function reset() {       counter = 0     }     // bind event     function bind() {       let list = document.querySelectorAll("[a-click]")       list.forEach(item => {         item.onclick = function () {           window[item.getAttribute("a-click")]()           apply()         }       })     }     // bind data     function apply() {       let list = document.querySelectorAll("[a-bind='counter']")       list.forEach(item => {         if (item.innerHTML !== counter + '') {           item.innerHTML = counter         }       })     }   </script> </body>  </html>

02 Object.defineProperty(ES5)

该方法是目前比较主流的方法,兼容性也不错,支持 ie8(注意:下面并没实现 vue2 的发布订阅者模式,有空再撸一个出来)。

<!DOCTYPE html> <html lang="zh-CN">  <head>   <meta charset="UTF-8">   <meta name="viewport" content="width=device-width, initial-scale=1.0">   <title>Object.defineProperty</title> </head>  <body>   <h4>Object.defineProperty(ES5语法)</h4>   <button a-click="add" style="width: 40%; height: 50px;">增加</button>   <button a-click="reset" style="width: 40%; height: 50px;">重置</button>   <div>     <span>第一个绑定数据:</span>     <span style="color:#CC6600" a-bind="counter"></span>   </div>   <div>     <span>第二个绑定数据:</span>     <span style="color:#CCCC33" a-bind="counter"></span>   </div>   <div>     <span>第三个绑定数据:</span>     <span style="color:#336699" a-bind="counter"></span>   </div>   <script type="text/javascript">     window.onload = function () {       // 首次加载需要初始化数据       apply('counter', obj.counter)       bind()     }     // data     let obj = {       _counter: 0     }     // counter 只是一个载体,真正的值存储在 _counter     Object.defineProperty(obj, 'counter', {       get: function () {         //console.log('get:', counter)         return this._counter       },       set: function (val) {         this._counter = val         //console.log('set:', counter)         apply('counter', this._counter)       }     })     // methods     function add() {       obj.counter++     }      function reset() {       obj.counter = 0     }     // bind event     function bind() {       let list = document.querySelectorAll('[a-click]')       list.forEach(item => {         item.onclick = function () {           window[item.getAttribute('a-click')]()         }       })     }     // bind data     function apply(str, val) {       let list = document.querySelectorAll(`[a-bind=${str}]`)       list.forEach(item => {         if (item.innerHTML !== val + '') {           item.innerHTML = val         }       })     }   </script> </body>  </html>

03 Proxy(ES6)

相比上面两种方法,用 es6 Proxy 来写数据绑定,代码会直观很多,而且很易用,不过遗憾的是 Proxy 兼容性很差,IE 是全面不支持它,而且 babel 没法完全将它转为 es5 语法,虽然有 google 大佬写的 Polyfill,但那个也是有残缺的(不知道尤大在 vue3 里怎么解决它)。

<!DOCTYPE html> <html lang="zh-CN">  <head>   <meta charset="UTF-8">   <meta name="viewport" content="width=device-width, initial-scale=1.0">   <title>proxy</title> </head>  <body>   <h4>proxy(ES6语法)</h4>   <button a-click="add" style="width: 40%; height: 50px;">增加</button>   <button a-click="reset" style="width: 40%; height: 50px;">重置</button>   <div>     <span>第一个绑定数据:</span>     <span style="color:#CC6600" a-bind="counter"></span>   </div>   <div>     <span>第二个绑定数据:</span>     <span style="color:#CCCC33" a-bind="counter"></span>   </div>   <div>     <span>第三个绑定数据:</span>     <span style="color:#336699" a-bind="counter"></span>   </div>   <script type="text/javascript">     window.onload = function () {       // 首次加载需要初始化数据       apply('counter', obj.counter)       bind()     }      // data     let obj = new Proxy({       counter: 0     }, {       set: function (obj, prop, value) {         obj[prop] = value         if (prop == 'counter') {           apply('counter', value)         }         return true       }     })     // methods     function add() {       obj.counter++     }      function reset() {       obj.counter = 0     }     // bind event     function bind() {       let list = document.querySelectorAll('[a-click]')       list.forEach(item => {         item.onclick = function () {           window[item.getAttribute('a-click')]()         }       })     }     // bind data     function apply(str, val) {       let list = document.querySelectorAll(`[a-bind=${str}]`)       list.forEach(item => {         if (item.innerHTML !== val + '') {           item.innerHTML = val         }       })     }   </script> </body>  </html>

到此,相信大家对“前端的数据绑定技术有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

前端的数据绑定技术有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Flex数据绑定技巧有哪些

这篇文章主要介绍Flex数据绑定技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Flex数据绑定技巧有一种简单的方法可以通过选中来激活/禁用控件。举个例子,假设你有一个DataGrid以及一些操作数据的按钮,
2023-06-17

Flex数据绑定的技巧有哪些

这篇文章主要介绍了Flex数据绑定的技巧有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Flex数据绑定技巧有一种简单的方法可以通过选中来激活/禁用控件。举个例子,假设你
2023-06-17

常用的web前端技术有哪些

常用的Web前端技术包括:1. HTML:网页结构标记语言,用于定义网页的结构和内容。2. CSS:层叠样式表,用于定义网页的样式和布局。3. JavaScript:脚本语言,用于实现网页的交互和动态效果。4. jQuery:JavaScr
2023-06-12

前端web框架技术有哪些

前端web框架技术有很多,以下是一些常见的:1. React2. Angular3. Vue.js4. Ember.js5. Backbone.js6. Knockout.js7. Meteor.js8. Polymer9. Aurelia
2023-06-13

web前端常用的技术框架有哪些

本篇内容介绍了“web前端常用的技术框架有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. BootstrapBootstrap 是一
2023-06-27

web前端技术有哪些Vue面试题

这篇文章主要介绍“web前端技术有哪些Vue面试题”,在日常操作中,相信很多人在web前端技术有哪些Vue面试题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”web前端技术有哪些Vue面试题”的疑惑有所帮助!
2023-06-02

前端开发需要掌握的技术有哪些

这篇文章主要介绍了前端开发需要掌握的技术有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前端开发需要掌握的技术:1、绘制原型图,实现效果图;2、与设计师的沟通和项目的参与
2023-06-06

大数据技术有哪些

本篇内容介绍了“大数据技术有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  大数据的概念,指的是无法在一定时间内用常规软件工具对其内容
2023-06-02

dropdownlist绑定数据的方法有哪些

有以下几种方法可以绑定数据到 DropDownList 控件:1. 通过代码在后台绑定数据:可以使用 DropDownList 控件的 DataSource 属性来指定数据源,然后使用 DataBind() 方法进行数据绑定。例如:```D
2023-10-10

wpf数据绑定的方式有哪些

WPF数据绑定的方式有四种:1. 单向绑定(OneWay):数据只能从数据源传递到目标元素,不能从目标元素传递回数据源。2. 双向绑定(TwoWay):数据可以从数据源传递到目标元素,也可以从目标元素传递回数据源。3. 单向到源绑定(One
2023-08-09

winform数据绑定的方法有哪些

在WinForm中,数据绑定的方法有以下几种:1. 使用数据绑定控件:WinForm中提供了一些数据绑定控件,如DataGridView、ListBox、ComboBox等,可以直接将数据源绑定到这些控件上。2. 使用数据绑定属性:WinF
2023-09-08

Flex3.0数据绑定的方式有哪些

小编给大家分享一下Flex3.0数据绑定的方式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用Flex3.0数据绑定来处理数据Flex3.0数据绑定是连接
2023-06-17

Flex数据绑定的方式有哪些

小编给大家分享一下Flex数据绑定的方式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Flex数据绑定 现在数据库或是某个文件里有一些数据需要显示在界面上该
2023-06-17

Flex数据绑定陷阱有哪些

这篇文章主要为大家展示了“Flex数据绑定陷阱有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Flex数据绑定陷阱有哪些”这篇文章吧。Flex数据绑定陷阱◆Usingbindinginpla
2023-06-17

Flex数据绑定方式有哪些

小编给大家分享一下Flex数据绑定方式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!关于Flex的几种绑定在Flex应用中程序中,Flex数据绑定的实际是借
2023-06-17

编程热搜

目录