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;

posted @   这是啥!啥!啥  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示