如何在React应用程序的开头运行脚本?

时间:2018-11-15 13:02:04

标签: reactjs react-redux

我认为这是一个简单的问题,但目前尚不清楚最佳解决方案。

除了运行我的React App,我还需要异步和独立地运行脚本来(例如)将用户指纹添加到我的数据库中。

此脚本的结果不会影响应用程序,但由于我正在使用App函数,因此我需要将该脚本包含在App中。

我可以想到两种方法:

1)在index.js

import { add_fingerprint }  from './utils/Functions';
add_fingerprint();

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById('root')
);

2)在App组件内部:

import { add_fingerprint }  from './utils/Functions';

class App extends Component {

  constructor(props) {
    super(props)    
  }

  componentDidMount(){
    add_fingerprint();
  }

  render () {
    return (<div>My app</div>)
  }

}

add_fingerprint功能:

export function add_fingerprint () {

  import axios from 'axios';
  import Fingerprint2 from 'fingerprintjs2';

  setTimeout(function () {
    Fingerprint2.get(function (components) {
    //axios call to add to my database         
    })  
  }, 500)

}

最正确的方法是什么?

1 个答案:

答案 0 :(得分:0)

第二点是正确的。

如果您需要从远程端点加载数据,这是实例化网络请求的好地方。 https://reactjs.org/docs/react-component.html#componentdidmount