由于无需使用useEffect()
钩子就可以直接从axios提取数据,那么为什么首选使用useEffect()
再使用axios?
在这种情况下,不需要useEffect()
吗?
这里是一个例子:
useEffect(() => {
axios
.get('http://localhost:3001/notes')
.then(response => {
setNotes(response.data)
})
}, [])
答案 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)
当您需要功能组件中的组件componentWillMount
或componentDidMount
这样的组件生命周期时,可以使用useEffect
钩子