React基础知识

本文介绍了React开发的基础概念,包括组件的定义与使用、JSX语法、样式设计、数据展示、条件渲染、列表渲染、响应事件、状态管理以及组件间的数据共享。最后提到常见的目录结构组织方式。
摘要由CSDN通过智能技术生成

https://zh-hans.react.dev/learn

一、组件

  • React 组件是返回标签的 JavaScript 函数。
  • React 组件必须以大写字母开头,而 HTML 标签则必须是小写字母。
  • export default关键字指定了文件中的主要组件。
function MyButton() {
  return (
    <button>
      I'm a button
    </button>
  );
}

export default function MyApp() {
  return (
    <div>
      <h1>Welcome to my app</h1>
      <MyButton />
    </div>
  );
}

二、JSX

js内定义的一套XML语法。

  • 标签必须闭合,如 <br />
  • 组件不能返回多个 JSX 标签,必须将它们包裹到一个共享的父级中,比如 <div></div><></> 。

三、样式设计

className=CSS中class

四、显示数据

const user = {
  name: 'Hedy Lamarr',
  imageUrl: 'https://i.imgur.com/yXOvdOSs.jpg',
  imageSize: 90,
};

export default function Profile() {
  return (
    <>
      <h1>{user.name}</h1>
      <img
        className="avatar"
        src={user.imageUrl}
        alt={'Photo of ' + user.name}
        style={{
          width: user.imageSize,
          height: user.imageSize
        }}
      />
    </>
  );
}

五、条件渲染

使用普通的JavaScript语句。

1. if语句:

let content;
if (isLoggedIn) {
  content = <AdminPanel />;
} else {
  content = <LoginForm />;
}
return (
  <div>
    {content}
  </div>
);

2. ?表达式:

<div>
  {isLoggedIn ? (
    <AdminPanel />
  ) : (
    <LoginForm />
  )}
</div>

3. 逻辑表达式

<div>
  {isLoggedIn && <AdminPanel />}
</div>

六、列表渲染

map函数

const listItems = products.map(product =>
  <li key={product.id}>
    {product.title}
  </li>
);

return (
  <ul>{listItems}</ul>
);

<li> 有一个key属性,用于区分兄弟节点,如同数据库的ID。

七、响应事件

声明事件响应函数,如onClick。不要调用事件处理函数,把函数传递给事件即可。

八、更新界面

import { useState } from 'react';

useState包括当前的 state(count),以及用于更新它的函数(setCount),可自定义变量名。

function MyButton() {
  const [count, setCount] = useState(0);

  function handleClick() {
    setCount(count + 1);
  }

  return (
    <button onClick={handleClick}>
      Clicked {count} times
    </button>
  );
}

use 开头的函数被称为Hook,只能在组件或其他 Hook的顶层调用 Hook。

九、组件间共享数据

  1. 将state 上移到MyApp 中,再将 MyApp 中的点击事件处理函数以及state一同向下传递到每个 MyButton中。
  2. count state以及 handleClick 事件处理函数,并将它们作为prop 传递给了每个按钮。
  3. 改变MyButton读取父组件传来的prop。
import { useState } from 'react';

export default function MyApp() {
  const [count, setCount] = useState(0);

  function handleClick() {
    setCount(count + 1);
  }

  return (
    <div>
      <h1>Counters that update together</h1>
      <MyButton count={count} onClick={handleClick} />
      <MyButton count={count} onClick={handleClick} />
    </div>
  );
}

function MyButton({ count, onClick }) {
  return (
    <button onClick={onClick}>
      Clicked {count} times
    </button>
  );
}

十、目录结构

App.js 创建组件

styles.css React应用的样式

index.js 连接组件与web浏览器

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值