当前位置: 首页 > article >正文

React18快速入门

需要先安装并配置React相关的工具和插件

下载安装Node.js,这里以MacOS Node.js v22.6.0为例
在这里插入图片描述在这里插入图片描述终端命令行检查是否安装成功

node -v
npm -v

Node.js快速入门

npm设置镜像源

#设置为阿里镜像源
npm config set registry https://registry.npmmirror.com
#查看是否生效
npm get registry 

下载并安装WebStorm

使用WebStorm创建React项目,这里命名为my-react-app

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开package.json文件查看如何运行该项目

在这里插入图片描述接着在命令行中运行react-scripts start

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

接着打开src/index.js文件,可以看到页面内容部分主要是通过加载App.js文件完成的。

在这里插入图片描述1.数据渲染

修改src/App.js文件

//数据渲染事例1
function App() {
  const divContent = '标签内容'
  const divTitle = '标签标题'
  return (
    <div title={divTitle}>
      {divContent}
    </div>
  );
}

export default App;

刷新浏览器可以看到新的修改页面

在这里插入图片描述在这里插入图片描述安装React Developer Tools插件后,当访问基于React构建的网站时,将看到ComponentsProfiler面板

在这里插入图片描述
修改src/App.js文件

//数据渲染事例2
import {Fragment} from 'react'
function App() {
  const list = [
    {id:1,name:'Tom'},
    {id:2,name:'Jack'},
    {id:3,name:'Brown'},
  ]
  const listContent = list.map((item) => {
    return (
        <li key={item.id}>{item.name}</li>
    )
  })
  return (
    <Fragment>
      <ul>{listContent}</ul>
    </Fragment>
  );
}

export default App;

2.事件处理

修改src/App.js文件

function App() {
  function handleClick() {
    alert('点击了按钮!');
  }
  return (
      <button onClick={handleClick}>
        按钮
      </button>
  );
}

export default App;

3.状态处理

修改src/App.js文件

function App() {
    let divContent = '默认内容'
    function handleClick() {
    divContent = '新内容'
  }
  return (
      <div>
          <p>{divContent}</p>
          <button onClick={handleClick}>
            按钮
          </button>
      </div>
  );
}

export default App;

点击按钮,我们发现页面中的divContent没有发生变化,为了实现这种变化需要引入useState

修改src/App.js文件

import { useState } from 'react';

function App() {

    const [data,setData] = useState({
        title:'默认标题',
        content:'默认内容'
    })
    function handleClick() {
        setData({
            ...data,//展开运算符把上面data的属性展开放到这里来
            content:'新内容'//只对content做修改
        })
  }
  return (
      <div>
          <div title={data.title}>{data.content}</div>
          <button onClick={handleClick}>
            按钮
          </button>
      </div>
  );
}

export default App;

4.组件间通讯

修改src/App.js文件

function Article({title,detailData}){
    return (
        <div>
            <h2>{title}</h2>
            <Detail {...detailData} />
        </div>
    )
}

function Detail({content,active}){
    return (
        <div>
            <p>{content}</p>
            <p>{active ? '激活' : '未激活'}</p>
        </div>
    )
}

function App() {

    const articleData = {
        title:'标题1',
        detailData: {
            content:'内容1',
            active:true,
        }
    }

    return (
        <Article {...articleData} />
    );
}

export default App;

5.各种React Hooks


http://www.kler.cn/news/305668.html

相关文章:

  • 切换淘宝最新镜像源npm
  • VSCode学习笔记
  • Linux开发讲课44---linux性能查看命令和工具
  • 在职研生活学习--20240907
  • FaaS(Function as a Service)框架集成springboot
  • 【数据结构-一维差分】力扣2848. 与车相交的点
  • MySQL 8.0授权语法变更及解决方案‌
  • 点云深度学习系列:Sam2Point——基于提示的点云分割
  • 2024上半年国产操作系统卖疯了!麒麟4.9亿,统信1.9亿!
  • 架构设计:负责网络、定时、坐下、站起、重连等,支持多类游戏的无锁房间
  • Oracle发送邮件功能:配置自动化发信指南?
  • Redis搭建集成
  • 【ACM独立出版】第二届物联网与云计算技术国际学术会议 (IoTCCT 2024,9月27-29)
  • BookStack在线文档管理系统本地Docker部署与远程访问详细教程
  • 安全运维工程师学习路线
  • Unity实现自己的协程系统
  • RFB_modified模块的作用?和ASPP模块的区别?
  • GLSL 棋盘shader
  • STM32 HAL freertos零基础(六)计数型信号量
  • 十二,Spring Boot 异常处理(自定义异常页面,全局异常,自定义异常)
  • 视频融合共享平台LntonAIServer视频分析平台噪声监测优势
  • 【计算机网络 - 基础问题】每日 3 题(五)
  • 【数据结构】8——图3,十字链表,邻接多重表
  • Android Activity组件与进程启动间关系
  • 电子电气架构——中央计算的软件定义汽车架构
  • 流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?
  • 如何用SQL Server和Oracle进行数据同步?
  • 人工智能与机器学习原理精解【19】
  • 幂等性小记
  • C# SQL 辅助工具