javascript - react+react-router 对所有组件作统一处理的方法
PHPz
PHPz 2017-04-11 12:01:26
[JavaScript讨论组]

遇到一个需求 需要在每个组件中处理一件相同的事情,但是几十个组件如果把同样的代码copy到componentWillMount中,首先重复量太大,而且一旦需要修改就是修改好几十处,我尝试了Route 的onEnter 属性,但是这样也必须在路由中给每个Route都加这个属性,请问各位大神 有没有什么办法,监听到路由变化事件或者是给所有组件同时绑定一个componentWillMount的方法呢?请赐教!

PHPz
PHPz

学习是最好的投资!

全部回复(1)
PHP中文网

写个HOC呗,下面代码里super的调用和自己的逻辑,顺序可以按自己的情况调整

function HOC(wrapped) {
  return class Enhancer extends wrapped {
    componentWillMount() {
      // 调用wrapped中的componentWillMount
      super.componentWillMount();
      
      // 下面写自己的逻辑。
    }
  }
}

调用的时候,就这么搞:

class Component extends React.Component {
  // bla...bla...bla...
}

export default HOC(Component);

或者高级点

@HOC
export default class Component extends React.Component {
  //...bla...bla...bla
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号