介绍
这篇文章主要介绍如何使用原生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的数据绑定功能