网站首页 > 基础教程 正文
react是什么?
react 这是一个声明式,高效且灵活地用于构建用户界面的 JavaScript 库。使用 react 可以将一些简短、独立的代码片段组合成复杂的 UI 界面,这些代码片段被称作“组件”。
react特点
1.声明式设计:创建交互式UI更简单。
2.组件化:构建具有自身状态的组件,灵活组成复杂UI。
3.高效:虚拟DOM节点,减少DOM元素交互。
4.灵活:自由融合其他技术栈。
JSX语法
react框架推荐使用JSX语法编程。JSX 是一个看起来很像 XML 的 JavaScript 语法扩展,直接在HTML中使用js语法。无法被浏览器识别,需要使用webpack将JSX解析成js语法。我们不需要一定使用 JSX,但它有以下优点:
- JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化。
- 它是类型安全的,在编译过程中就能发现错误。
- 使用 JSX 编写模板更加简单快速。
import React from "react";
class Test extends React.Component {
constructor(props) {
super(props);
}
render() {
function getName(user){
return user.name;
}
const user = {
name: 'jack',
age: 18
}
return(
<div>
<h1>hello {getName(user)}</h1>
</div>
)
}
}
export default Test
组件
1.有状态组件
有状态组件又被称为容器组件或者聪明组件,它主要用来处理数据或者页面逻辑交互。它比无状态功能更加强大。类组件可以维护自身的状态变量,即组件的state。
class Test extends React.Component {
constructor(props) {
super(props);
this.state = {
name: 'jack',
age: 18
}
}
render() {
return(
<div>
<h1>hello { this.state.name }</h1>
</div>
)
}
}
export default Test
2.无状态组件
无状态组件又称变现性组件或者木偶组件,为何叫木偶组件?因为它只关心数据传递props,只能访问输入的 props,同样的 props 会得到同样的渲染结果,不会有副作用。而且没有自己的state。
import React from "react";
const Componment = (props) => {
return(
<div>
hello {props.user.name}
</div>
)
}
export default Componment
import React from "react";
import Componment from "./Test2";
class Test extends React.Component {
constructor(props) {
super(props);
}
render() {
function getName(user){
return user.name;
}
const user = {
name: 'jack',
age: 18
}
return(
<div>
<Componment user={user}/>
</div>
)
}
}
export default Test
猜你喜欢
- 2024-11-24 React(6)React受控组件的使用
- 2024-11-24 React(8)React组件的生命周期
- 2024-11-24 React-EffectHook的应用简单示例
- 2024-11-24 业余时间总结了React的setState原理,有兴趣的了解下
- 2024-11-24 「react进阶」一文吃透React高阶组件(HOC)
- 2024-11-24 React-State Hook的应用简单示例
- 2024-11-24 2022 年初级 React 开发人员的 5 大面试问题
- 2024-11-24 React-Redux简单计算示例
- 2024-11-24 手把手教你深入浅出React 迷惑的问题点【完整版】
- 2024-11-24 day2:前端面试题(react)
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)