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

React学习第一天

搭建react脚手架

npx create-react-app "project(你的项目名称)"

jsx基础语法

这种类似于html的语法在react中被称为JSX,是JavaScript的一种语法拓展
使用jsx描述页面,有一些语法规则

  • 根元素只有一个
  • JSX中使用JavaScript表达式,表达式写在花括号中
  • 属性值指定为字符串字面量,或者在属性值中插入一个JavaScript表达式
  • style对应样式对象,class要写作clssName
  • 注释续写在花括号
  • JSX允许在模板中插入数组,数组会自动展开所有成员
// 在react中,使用jsx描述页面,例如
function App(){const el = <div>hello react</div>return el
}
// 当然将类似于html的元素单独提取出来例如
function App(){const el = <div>hello react</div>return el
}

createElement方法

JSX是一个JavaScript扩展语法,Babel会将JSX转为React.createElement函数调用

React.createElement(type,[props],[...children])
// 参数说明type:创建react元素类型props(可选):react元素的属性children(可选):react的子元素
例如
const element1 = (<h1 className="greeting">hello word</h1>
)
const element2 = React.creatElement("h1",{className: "greeting"},"hello word")

组件与事件的绑定

  1. react中的组件
函数式组件
function 组件名(){return (<div>hello React</div>)
}
类组件
class App extends React.Component{render(){return (<div>hello React</div>)}
}
  1. 为元素绑定事件
    在react中,绑定事件写法如下
<button onClick={handleClick}>按钮</button>

在react中,传递事件对象,是一个合成对象
React也提供了相应访问原生对象的方式

例如
function App(){/***	@params:传递的参数*/function handleToBaidu(params,e){e.preventDefault()return false//return fasle在原生可以进行事件默认阻止行为,但react必须用事件对象e}return  (<a href="https://www.baidu.com" onClick={(e)=>handleToBaidu('传递的参数',e)}>前往百度</a>)
}原生事件
console.log(e.nativeEvent)

组件状态与数据传递

  • 把所有的state都当作异步
  • 永远不要信任state调用后的状态(最好打印一下)
  • 如果要使用改变之后的状态,可以使用回调函数(第二个参数)
  • 如果新的状态要根据上一个的状态运算,使用函数的方式改变状态
<!--类组件中-->
this.setState({// 设置值
})
<!--函数式组件-->
const [num,setNum] = useState(num)
function handleClick (){setNum(2)
}例如handleClick = ()=>{// this.state.num++  //不能通过这种方式setState可能是异步的,所以想拿到state执行后的结果,可以通过提前使用一个变量存储,或者使用第二个参数,他是一个函数,在state更新后调用this.setState({num:this.state.num+1})}render(){return (<><div>{this.state.num}</div><button onClick={this.handleClick}>修改</button></>)}

props,父组件向子组件传递
函数组件

//  子组件
function Hello(props){return (<div>{props.content}</div>)
}
export default Hello
//  父组件
function App(){return (<Hello content="你好"></Hello>)
}

子组件向父组件传递

//  子组件向父组件传递
function Hello(props){function handleClick(){props.handleClickParent("我很好")}return (<div onClick={handleClick}>{props.content}</div>)
}
export default Hello//  父组件
function App(){function handleClickParent(VAL){console.log('VAL',Val)}return (<Hello content="你好" handleClickParent={handleClickParent}></Hello>)
}
http://www.dtcms.com/a/399193.html

相关文章:

  • 内蒙古网站建设网络推广的目标
  • 秋招防作弊指南:AI面试智能监考全解析
  • 来宾住房和建设局网站ppt 模板免费下载
  • 最新2025版本!Bandicam8.2.2.2531,最佳电脑录屏,无限制,支持4K画质,新人UP主游戏录屏录课必备工具
  • app制作公司哪个好厦门seo外包平台
  • 浅谈Node.js以及对fs模块的理解及常用方法
  • AIGC中的图像生成Stable Diffusion,MidJourney需要的算力配置要求是什么?
  • 建设资格执业注册中心网站扬中话
  • 兰州网站建设小程序html访问人数统计代码
  • vscode ssh连接远程服务器一直显示正在打开远程Initializing VS Code Server(已解决)
  • 网站初期建设的成本来源关键词快速排名软件价格
  • Nature论文深度剖析:DeepSeek R1 MoE架构的工程化实践与代码级优化
  • 【GD32】串口
  • 双活、异地多活架构怎么设计才不翻车?
  • 怎么创建一个网站卖东西isp网站接入做哪些业务
  • 佛山市多语言营销型网站建站制作网站的最新软件
  • UniApp 技术架构深度解析
  • 北京网站seowyhseo滨海做网站的公司
  • 基于 DMS 进行 DDL 同步的测试与分析
  • 网站 分辨率射阳做企业网站哪家好
  • Qt入门学习记录
  • 外贸网站谷歌seo西安网页设计模板
  • 数据结构与设计模式面试问题及解答
  • linux centos 脚本批量启动宝塔服务(二)
  • 云平台网站叫什么泰州公司做网站
  • 信息系统项目的规划绩效域
  • python+vue的实践性教学系统Java
  • Jupyter 中指定 Python 环境的几种方法
  • 南京网站排名软装设计公司排行
  • 网络营销活动策划南宁seo多少钱报价