react的组件创建类型
一、类组件(有状态组件)
有props.控制状态state,可以试用生命周期函数
1. 类名称必须以大写字母开头
2. 类组件必须继承React.Component父类,从而可以使用父类中提供的方法或属性
3. 类组件必须提供render()方法
4. render()方法必须要有返回值
1 2 3 | import React form 'react' ; class CreatDom extends React.Component {<br> constructor(props){<br> super (props);<br> this .state = {<br> loading: true ;<br> }<br> }<br> componentDidUpdate(preProps) {<br> this .setState({loading: false })<br> }<br> onClick(e) {<br> console.log(e)<br> }render () { return <div onClick={ this .onClick}> hello word!! { this .state.loading}</div> } } export default CreatDom; |
二、纯函数组件(无状态组件)
函数式定义组件没有state和生命周期函数且不能访问this,而类定义中这些都可以有。组件只需要做静态页面的展示而没有复杂的用户交互以及状态更新,我们推荐使用函数组件。
1. 函数组件名称必须以大写字母开头;
2. 函数组件必须要有返回值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | export interface BreadcrumbsProps { items: { href: string; text: string; }[]; } function Breadcrumbs(props: BreadcrumbsProps) { const { pathname } = useLocation(); return ( <BreadcrumbList> {props.items.map(({ href, text }) => href === pathname ? ( <span className={`t--breadcrumb-item ${ href === pathname ? `active` : `` }`} key={href} > {text} </span> ) : ( <Link className={`t--breadcrumb-item ${ href === pathname ? `active` : `` }`} key={href} to={href} > {text} </Link> ), )} </BreadcrumbList> ); } export default Breadcrumbs; |
***组件不要变成复杂的容器,最好只是数据流的管道。开发者根据需要,组合管道。组件的最佳写法应该式函数,不是类。
无论使用哪种方式创建组件,组件名称的首字母都必须大写,因为我们写的是JSX;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本