React组件定义

一、定义

组件是是构建用户界面(UI)的基础,它可以是一个输入框、按钮、也可以是一整个页面。组件可以分为以下2种类型:

1、函数组件(Functional Components)

顾名思义就是用来函数定义的组件,是一种简单灵活的组件形式,又叫无状态组件。函数组件接收一个props对象作为参数,返回一个React元素作为输出。

2、类组件(Class Components)

是一种更加复杂的组件形式,通过继承React.Component类来定义组件。类组件有自己的状态和生命周期方法,提供了更多的功能和控制权。

二、创建React组件

1、函数组件

复制代码
function handleClick()  {
  console.log('登录了');
};
export default function Login (props){
  return (
    <div>
      <button className="btn" style={{'background':'red'}} onClick={handleClick}>登录{props}</button>
    </div>
  );
}

或者使用箭头函数

复制代码
const handleClick = () => {
  console.log('登录了');
};
const Login = (props) => {
const {name} = props;
  return (
    <div>
    <span>{name}</span>
      <button className="btn" style={{'background':'red'}} onClick={handleClick}>登录{props}</button>
    </div>
  )
};
export default Login;

2、类组件

复制代码
import  { Component } from 'react';

class Settings extends Component {
  constructor(props) {
    super(props);
    this.state = {
      name: props.name,,
      msg:'生死看淡,不服就干'
    };
  }

  handleClick = () => {
    this.setState({ name: '你好啊, React!' });
  }
  render() {
    return (
      <div>
        <h1 className="title" style={{color:'green'}}>{this.state.name}</h1>
        <h6>{this.state.msg}</h6>
        <button onClick={this.handleClick}> 点击 </button>
      </div>
    );
  }
}

export default Settings;

三、引入使用React组件

复制代码
import { useState } from 'react'
import Login from './views/login/index.jsx';
import Settings from './views/settings/index.jsx';
function App() {
  const [count, setCount] = useState(0);
  return (
    <div>
      <Login name="LoginPage"/>
      <Settings name="SettingsPage"/>
    </div>
  )
}

export default App;
相关推荐
橘子味的冰淇淋~17 分钟前
优化前端性能之从“全局引入”改为“按需引入”
前端·javascript·vue.js
Vennn38 分钟前
Android自动化:使用 Web 方式实现某音未读消息检查与采集
前端·javascript·vue.js
Smilezyl40 分钟前
为了搞懂 AI Agent,我用 6000 行 JS 代码手搓了一个零依赖的 Coding Agent
前端·javascript·github
掰头战士43 分钟前
搞定JavaScript类型判断,一文就够了
javascript
周凡1231 小时前
AI 时代的 Web JavaScript 逆向分析实践与思考
前端·javascript·人工智能
zhoumeina992 小时前
分段创建产品,tab 页切换又要保留缓存
前端·javascript
The Sheep 20232 小时前
EFcore 查询数据
java·javascript
怕浪猫2 小时前
Electron 开发实战(七):网络通信与 API 集成全解
前端·javascript·electron
w_t_y_y2 小时前
vue父子组件通信(一)父子调用和通信(2)VUE3
前端·javascript·vue.js