React学习笔记
react 中的 state(状态,props属性) 可以对应 vue 中的 data ,但是是单向数据传输,数据流自顶向下,组件的数据只能影响其后的组件
state 与 props 的区别:state可以交互改变,props 不可变
setState 并不会立即改变 this.state,而是创建一个即将处理的state,不一定是同步
通过{}渲染数据时,里面不能时 Object 数据,数组数据会自动展开
组件中的state直接更改(this.state.xxx = yyy):数值会改变,但是已渲染的页面不会刷新,通过this.setState({state 新值})触发渲染页面监听的回调函数刷新页面
JSX语法的好处:
- JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化。
- 它是类型安全的,在编译过程中就能发现错误。
- 使用 JSX 编写模板更加简单快速。
Withrouter 作用:把不是通过路由切换过来的组件中,将react-router 的 history、location、match 三个对象传入props对象上
usestate\useEffect: useEffect可以使用多次,依次执行
import {useState , useEffect} from 'react';
function Example(){
const [count , setCount] = setState(0);this
// count 等同于 this.state.count
// setState 等同于 dispatchActions
// useEffect 在每一次 setState调用时调用,每次产生一个独立的状态 <==> 如果在class组件中,@DidMount中则需要使用闭包来获取独立的状态,不然以更新队列最后一次为准
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
useRef \ createRef:都创建一个 ref 引用,但是createRef 每次页面刷新会重新创建
import {createRef, useRef} from 'react'
function Test1(){
const inputFocus = useRef()
return (
<div ref={inputFocus}>
</div>
)}
mount/update/unmounting => 5种生命周期钩子函数,@WillMount@DidMount@WillUpdate@DidUpdate@WillUnmount + 2 @WillReceiveProps已加载组件收到新参数@should@Update:组件判断是否重新渲染调用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2020-03-30 ubuntu基于VSCode的C++编程语言的构建调试环境搭建指南