为什么在通过axios提取数据时使用useeffect()react挂钩?

时间:2019-07-16 06:24:27

标签: reactjs axios fetch react-hooks use-effect

由于无需使用useEffect()钩子就可以直接从axios提取数据,那么为什么首选使用useEffect()再使用axios?

在这种情况下,不需要useEffect()吗?

这里是一个例子:

useEffect(() => {
  axios
    .get('http://localhost:3001/notes')
    .then(response => {
      setNotes(response.data)
    })
}, [])

4 个答案:

答案 0 :(得分:1)

在React 16.8之后,我相信React社区正试图脱离课堂。因此,介绍了挂钩概念。通过使用useEffect(),可以避免使用类组件的componentDidMount等。

答案 1 :(得分:0)

通过使用extension String { var wordCount: Int { let regex = try? NSRegularExpression(pattern: "\\w+") return regex?.numberOfMatches(in: self, range: NSRange(location: 0, length: self.utf16.count)) ?? 0 } } let text = "I live in iran and i love Here" print(text.wordCount) // 8 ,您告诉React您的组件在渲染后需要做一些事情。 React将记住您传递的函数,并在执行DOM更新后稍后调用它。 使用功能组件时可以使用React Hooks,而使用基于类的组件时,可以在<mat-drawer-container> <mat-drawer mode="side" opened position="end">My drawer content</mat-drawer> <mat-drawer-content>Main content</mat-drawer-content> </mat-drawer-container> 方法中使用useEffect从API中获取数据。

答案 2 :(得分:0)

在第一次渲染之后和每次更新后

useEffect()调用。在您的情况下,axios服务将在渲染后调用,并且在每次更新后,您可以从调用中删除useEffect并将axios放在 componentDidMount()

答案 3 :(得分:0)

当您需要功能组件中的组件componentWillMountcomponentDidMount这样的组件生命周期时,可以使用useEffect钩子