Cés*_*rca 11 typescript reactjs
我已经看到了两种在React中用Typescript声明一个SFC的方法,这两种方法是:
import * as React from 'react'
interface Props {
message: string
}
const Component = (props: Props) => {
const { message } = props
return (
<div>{message}</div>
)
}
export default Component
Run Code Online (Sandbox Code Playgroud)
和:
import * as React from 'react'
interface Props {
message: string
}
const Component: React.StatelessComponent<Props> = props => {
const { message } = props
return (
<div>{message}</div>
)
}
export default Component
Run Code Online (Sandbox Code Playgroud)
从这个问题我看到,如果你在组件中使用它,你可以通过第二种方式从界面中省略子项.
还有什么差异吗?哪一个是首选的,为什么?
wil*_*ire 13
貌似React.SFC和React.StatelessComponent已被弃用。
使用React.FunctionComponent来代替:
import * as React from 'react'
interface IProps {
text: string
}
export const MyComponent: React.FunctionComponent<IProps> = ({ text }: IProps): JSX.Element =>
<div>{text}</div>
Run Code Online (Sandbox Code Playgroud)
从技术上讲,这个名字并不意味着同一件事,因为Dan Abramov很好地总结了这一点。
编辑:请注意,它经常像React.FC<>现在一样被别名。