为了账号安全,请及时绑定邮箱和手机立即绑定

js中订阅者和观察者能否给一个实际开发中用例子?

js中订阅者和观察者能否给一个实际开发中用例子?

三国纷争 2019-03-13 13:13:14
网上到处都是订阅者和观察者的代码实现,现在不知道什么场景,或者更简单实际的例子说明一下问题?
查看完整描述

4 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

真实的例子——网站登录

假如我们正在开发一个商城网站,网站里有 header 头部、nav 导航、消息列表、购物车等模块。


如果它们和用户信息模块产生了强耦合,比如下面这样 的形式:


login.succ(function(data){

 header.setAvatar( data.avatar); // 设置 header 模块的头像

 nav.setAvatar( data.avatar ); // 设置导航模块的头像

 message.refresh(); // 刷新消息列表

 cart.refresh(); // 刷新购物车列表

}); 

等到有一天,项目中又新增了一个收货地址管理的模块,这个模块本来是另一个同事所写的,在最后部分加上这行代码:


 login.succ(function( data ){

 header.setAvatar( data.avatar);

 nav.setAvatar( data.avatar );

 message.refresh();

 cart.refresh();

 address.refresh(); // 增加这行代码

});

我们就会越来越疲于应付这些突如其来的业务要求,要么跳槽了事,要么必须来重构这些代码。

查看完整回答
反对 回复 2019-03-19
?
偶然的你

TA贡献1841条经验 获得超3个赞

比如 VueReact 等等框架中

视图层的输入能影响到模型层,反之亦然,即双向绑定

这里的 怎么影响,就是靠订阅者观察者,因为 js 没有 Java 之类语言有的反射能力,只能靠这个去做一些数据绑定的事情。


查看完整回答
反对 回复 2019-03-19
  • 4 回答
  • 0 关注
  • 542 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号