前端代码解耦,评审

代码解耦

今天看到前端小我伙伴的代码,发现两个js之间的耦合度高,一个方法里变量,两个js相互引用,这样的代码不适合阅读,更不适合未来的交接. 具体如下:

  @action
  getList = flow(
    function* (data) {
      try {
        const res = yield modelProvider.getList(data);
        this.List = this.List.concat(.res.data);
        if (res.page) {
          this.total = res.page.total;
        }
        if (res.data.length < this.PageSize) {
          this.isMoreDisabled = true;
          console.log(res.data)
          return res.data;
        }
        this.PageNo = data.pageNo + 1;
        return res.data;
      } catch (e) {
        return handleError(e);
      }
    }
  ).bind(this)
复制代码

这里是store里的代码

  //获取设备列表下一页
  getMore = () => {
    const { PageNo, List, PageSize } = this.targetStore;
    this.setState({
      deviceLoading: true
    });
    getList({
      pageNo: PageNo,
      pageSize: PageSize,
    })
      .then(res => {
        console.log(res);
        message.destroy();
        this.setState({
          deviceLoading: false
        });
        if (res.length) {
          this.Progress();
        }
      })
  };
复制代码

这里是index.js里的文件的代码.

很正常的获取列表的内容,在index.js里调用getMore函数,获取store里的PageNo, List, PageSize,这些变量获取后传递给store里的函数getList从后端拉取数据,然后store里返回数据给index.js做判断.

以下是个人的看法 index.js里的文件引用store里的变量:PageNo,PageSize,index.js里的getList里的方法里需要接受来着store里的变量:res,两个js文件相互依赖,相互耦合,不利于后面的代码的维护,可能新增需求后要维护原来的代码会造成一定的困难,增加后续交接小伙伴交接难度. 在这里如果需要解耦的话,则index.js里面就不应该处理业务逻辑,把所有的业务逻辑都提到store里.

转载于:https://juejin.im/post/5c359d9cf265da61285a4e1d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值