如何使用原生javascript实现类似vue的数据绑定功能

  介绍

这篇文章主要介绍如何使用原生javascript实现类似vue的数据绑定功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

具体如下:

观察者模式

let  observer =, {   ,,,/*订阅功能*/,,,addSubscriber:, function  (cb), {   ,,,,,this.subscribers.push (cb);   ,,,},   ,,,/*退订功能*/,,,removerSubscriber:, function  (cb), {   ,,,,,let  index =, this.subscribers.indexOf (cb);   ,,,,,this.subscribers.splice(指数,1)   ,,,},   ,,,//,发布功能   ,,,发布:,function (什么),{   ,,,,,for  (let 小姐:this.subscribers拷贝),{   ,,,,,,,if  (typeof  this.subscribers[我],==,“function"), {   ,,,,,,,,,this.subscribers[我](什么);   ,,,,,,,}   ,,,,,}   ,,,},   ,,,//,让每个对象具有订阅功能   ,,,:函数(obj) {   ,,,,,,(let  key 这个拷贝){   ,,,,,,,obj(例子),=,(例子);   ,,,,,}   ,,,,,obj.subscribers =, [];   ,,,},   以前,,}

使用实例

,,//,定义对象   ,,,let  o =, {};   ,,,//,实现数据绑定,实现具有发布订阅功能   ,,,observer.make (o);   ,,,//,发布   ,,,(“# num") .oninput 美元=,函数(){   ,,,,,o.publish (this.value);   ,,,};   ,,,//,平方功能   ,,,o.addSubscriber(函数(num) {   ,,,,,(“# sqrnum") .value 美元=,Math.pow (num 2);   ,,,});   ,,,o.addSubscriber(函数(num) {   ,,,,,(“# cubenum") .value 美元=,Math.pow (num 3);   ,,,});   ,,,o.addSubscriber(函数(num) {   ,,,,,(“# fourFangnum") .value 美元=,Math.pow (num 4);   ,,,});   ,,,o.addSubscriber(函数(num) {   ,,,,,(“# sqrtnum") .value 美元=,Math.sqrt (num);   ,,,});   ,,}   function 才能;$ (str) {//# box  .cls  p   ,,,如果(str.charAt (0)==?”) {   ,,,,,return  . getelementbyid (str.substring (1));   ,,,}else 如果(str.charAt (0)==?”) {   ,,,,,return  document.getElementsByClassName (str.substring (1));   还有,,,}{   ,,,,,return  document.getElementsByTagName (str);   ,,,}   以前,,}

以上是“如何使用原生javascript实现类似vue的数据绑定功能”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

如何使用原生javascript实现类似vue的数据绑定功能