学习react第一天

创建第一个react项目

create-react-app创建

javascript 复制代码
npx create-react-app my-react-app

vite创建

javascript 复制代码
npm create vite@latest my-app -- --template react-ts

Jsx

概念:JSX是JavaScript和XML(HTML)的缩写,表示在JS代码中编写HTML模版结构,它是React中编写 UI模版的方式

事件绑定

传参要用箭头函数不然会直接在标签里调用

javascript 复制代码
<button onClick={(e) => handelClick(args, e)}>按钮</button>

组件的定义

在React中,一个组件就是首字母大写的函数,内部存放了组件的逻辑和视图UI, 渲染组件只需要把组件当成标签书写 即可

javascript 复制代码
const Button = () => {
  return <button style={{color: 'blue'}}>bbbb</button>
}

useState

添加状态变量类似ref

返回的是一个数组

定义时解构,前面是状态变量,后面是修改的方法

javascript 复制代码
const [count, setCount] = useState(0)
  const addCount = () => {
    setCount(count + 1)
  }

<button onClick={() => setCount(count + 1)}>add</button>
<button onClick={() => addCount()}>{count}</button>

只有setCount能修改count的值,别的函数可以调用setCount来修改

循环渲染的方法

使用map返回一个html结构

javascript 复制代码
<ul>
  {list.map(item => <li key={item.id}>{item.name}</li>)}
</ul>

样式的添加修改

javascript 复制代码
<span 
    onClick={() => handelChange(item.type)} 
    key={item.type} 
    // className={`nav-item ${activeTab === item.type ? 'active' : ''}`}
    className={classNames('nav-item', {active: activeTab === item.type})}
>{item.text}</span>)}

条件判断

html语句中逻辑判断使用三元运算符或者逻辑运算符

javascript 复制代码
function App () {
  return (
    <div className="App">
      {/* 逻辑与 && */}
      {isLogin && <span>this is span</span>}
      {/* 三元运算 */}
      {isLogin ? <span>jack</span> : <span>loading...</span>}
    </div>
  )
}

复杂条件下通过函数使用if-else判断

javascript 复制代码
function getArticleTem () {
  if (articleType === 0) {
    return <div>我是无图文章</div>
  } else if (articleType === 1) {
    return <div>我是单图模式</div>
  } else {
    return <div>我是三图模式</div>
  }
}

function App () {
  return (
    <div className="App">
      {/* 调用函数渲染不同的模版 */}
      {getArticleTem()}
    </div>
  )
}
相关推荐
qq_344115223 分钟前
WinForm学习笔记一(建立项目)
笔记·学习
小呀小萝卜儿3 分钟前
2026-01-14 学习记录--LLM-申请Hugging Face 访问令牌(以Meta-Llama-3.1-8B-Instruct为例)
学习·语言模型·llama
走在路上的菜鸟4 分钟前
Android学Flutter学习笔记 第五节 Android视角认知Flutter(插件plugins)
android·学习·flutter
2501_948122634 分钟前
React Native for OpenHarmony 实战:Steam 资讯 App 隐私政策实现
javascript·react native·react.js·游戏·ecmascript·harmonyos
2501_948122638 分钟前
React Native for OpenHarmony 实战:Steam 资讯 App 主题设置实现
javascript·react native·react.js·游戏·ecmascript·harmonyos
2301_8002561117 分钟前
【人工智能引论期末复习】第4章 机器学习3-无监督学习
人工智能·学习·机器学习
星火开发设计21 分钟前
深入浅出HDFS:分布式文件系统核心原理与实践解析
大数据·数据库·hadoop·学习·hdfs·分布式数据库·知识
刘孬孬沉迷学习24 分钟前
6G 六大应用场景
学习·5g·信息与通信·6g·5g nr·6g 应用场景
C_心欲无痕29 分钟前
JavaScript 常见算法与手写函数实现
开发语言·javascript·算法
王解30 分钟前
本地管理员
学习·ctf