react快速入门

一、为什么要学习 React?

✅1. 行业主流,就业刚需

全球大厂广泛采用:Meta(Facebook)、Netflix、Airbnb、微软、字节、腾讯等。

国内中大型企业前端技术栈首选之一。

招聘需求常年稳居前端框架榜首。

✅ 2. 生态强大,能力边界广

Web 端:React + Next.js(SSR/SSG)

移动端:React Native(一套代码多端运行)

桌面端:Electron + React

VR/AR:React 360

几乎覆盖所有现代前端开发场景。

✅ 3. 思想先进,提升编程能力

强调 组件化、函数式编程、状态驱动 UI。

学习 React 能让你更深入理解 声明式编程 和 数据流管理。

对后续学习 Redux、Zustand、Recoil 等状态库打下基础。

✅ 4. 社区活跃,资源丰富

GitHub Stars 超 200k(Vue 约 210k,两者相当)。

npm 包数量庞大,解决方案成熟。

中文文档完善,教程极多。
二、React vs Vue:核心区别(一句话总结)

Vue = "精装修房" ------ 开箱即用,上手快

React = "毛坯房" ------ 自由度高,可定制强

维度 React Vue
定位 UI 库(只管视图层) 渐进式框架(提供完整方案)
语法 JSX(JS + HTML 混写) 模板语法(HTML 扩展)
学习曲线 较陡(需理解函数组件、Hooks、闭包陷阱) 平缓(模板贴近 HTML,响应式直观)
官方配套 路由(React Router)、状态(Redux/Zustand)均为第三方 官方提供 Vue Router、Pinia、Vite
灵活性 ⭐⭐⭐⭐⭐ 极高,架构自由 ⭐⭐⭐ 中等,约定优于配置
TypeScript 支持 极佳(Meta 主推 TS) 优秀(Vue 3 全面 TS 重写)
性能 虚拟 DOM + Diff 优化 响应式依赖追踪 + 编译时优化

官网地址如下:https://zh-hans.react.dev/learn?spm=5176.28103460.0.0.62be6308yKASNW#components

1.react基础语法

一句话总结就是:React = 组件 + 状态 + JSX

  • 组件(Component):把页面拆成独立可复用的"乐高积木"
  • 状态(State):数据变了,界面自动更新
  • JSX:在 JavaScript 里写类似 HTML 的语法

1.1组件

函数就是组件

javascript 复制代码
function MyButton() {
  return (
    <button>
      我是一个按钮
    </button>
  );
}

export default function MyApp() {
  return (
    <div>
      <h1>欢迎来到我的应用</h1>
      <MyButton />
    </div>
  );
}

1.2样式和数据回显

JSX 比 HTML 更加严格。你必须闭合标签,如 <br />。你的组件也不能返回多个 JSX 标签。你必须将它们包裹到一个共享的父级中,比如 <div>...</div> 或使用空的 <>...</> 包裹:

样式有两种引入方式:

在主函数中调用

javascript 复制代码
import MyButton from "./test.tsx";


export default function App() {
    
    return (
        <div>
          
            <MyButton></MyButton>
        </div>
    );
}

效果如下:

1.3条件渲染

使用if else 或者三元表达式

javascript 复制代码
const user = {
    name: "张三",
    imageUrl: "https://i.imgur.com/yXOvdOSs.jpg",
    imageSize: 90,
};
export default function Profile() {

    return (
        // 根标签
        <>
           
            {/*三元表达式,if-else*/}
            <div>
                {user.name.length == 0 ? (<h1>我是哥哥</h1>): (<h2>我是弟弟</h2>)}
            </div>
           
        </>
    );
}

1.4列表渲染

javascript 复制代码
const products = [
    { title: 'Cabbage', id: 1 },
    { title: 'Garlic', id: 2 },
    { title: 'Apple', id: 3 },
];
//便利数组
const listItems = products.map((item) => {
    return (
    <li key={item.id}>
        {item.title}
    </li>
    )
});
export default function Profile() {

    return (
        // 根标签
        <>
            <ul>{listItems}</ul>
        </>
    );
}

1.5事件

javascript 复制代码
function MyButton() {
  function handleClick() {
    alert('You clicked me!');
  }

  return (
    <button onClick={handleClick}>
      点我
    </button>
  );
}

1.6更新状态

你将从 useState 中获得两样东西:当前的 state(count),以及用于更新它的函数(setCount)。你可以给它们起任何名字,但按照惯例会像 [something, setSomething] 这样为它们命名。

javascript 复制代码
import {useState} from "react";


export default function Profile() {
const [data,setData] = useState(0)
    const handleClick = () => {
    setData( data + 1)
    }
    return (
        // 根标签
        <>
           
            <div>{data}</div>
<button onClick={handleClick}>点我加加</button>


        </>
    );
}

如果需要组件之间共享数据,那么就需要将各个组件的 state "向上" 移动

例如下面的例子:

javascript 复制代码
import { useState } from 'react';

export default function MyApp() {
    return (
        <div>
            <h1>独立更新的计数器</h1>
            <MyButton />
            <MyButton />
        </div>
    );
}

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

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

    return (
        <button onClick={handleClick}>
            点了 {count} 次
        </button>
    );
}

共享版本呢,改动如下:

javascript 复制代码
import { useState } from 'react';

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

    function handleClick() {
        setCount(count + 1);
    }
    return (
        <div>
            <h1>共同更新的计数器</h1>
            <MyButton count={count} onClick={handleClick} />
            <MyButton count={count} onClick={handleClick} />
        </div>
    );
}

function MyButton({ count, onClick }) {
    return (
        <button onClick={onClick}>
            点了 {count} 次
        </button>
    );
}

1.7使用Hook

以 use 开头的函数被称为 Hook 。useState 是 React 提供的一个内置 Hook

相关推荐
小码哥_常2 小时前
一套自己部署的 IM,客户端是同一份 Flutter
前端·后端
蜗牛攻城狮4 小时前
微前端四大方案选型对比与最佳实践:qiankun、micro-app、wujie、Module Federation
前端·微前端·qiankun·前端架构·micro-app·wujie
她说可以呀5 小时前
Vue插槽
前端·javascript·vue.js
qq_448011166 小时前
Vue + Jinja2两套模版与法冲突造成undefinedError
前端·javascript·vue.js
aixingpan6 小时前
aixingpan.cn API开发文档:前端查询夏令时和时区接口指南
前端·php
2601_958352906 小时前
23.5×19mm 换掉一整条音频链?|A-68 集成了什么:ADC / DAC / 24.576MHz 时钟 / AEC / 波束降噪,主控仅需 6 根线
前端·音视频·ai降噪·回声消除·语音模块
志尊宝7 小时前
AI原生前端开发(039):AI辅助的Nuxt 4全栈开发
前端·vue.js·ai-native
FRing038 小时前
JavaScript入门到精通三十二(深拷贝、浅拷贝、递归函数)
开发语言·前端·javascript
excel8 小时前
双 Token 与前端使用 Crypto 公私钥鉴权换 Token,哪种方案更好?
前端·后端
外收内放8 小时前
Python基础语法练习题(73)
java·前端·python