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

尚硅谷-react[1-6集]

目录

步骤

1. devlopment.js
2. react-dom.devopment.js
3. babel.min.js // 将jsx转为js

体验

// 这个虚拟dom的内容不能够写引号,单引号双引号
const VDOM = <h1>nihao  react</h1>
// 可以使用括号进行编写
const VDOM1 = (<h1>nihao  react</h1>
)
// 只有这里会写一次 通过原生api操作dom
reactDOM.render(VDOM,document.getElementById("test")) 

虚拟DOM

创建方式不推荐的一种-在script中写

<script type=text/javascript>const VDOM = React.createElement('h1',{id:'title'},'标签内容')ReactDOM.render(VDOM,document.getElementById('test'))
</script>

创建方式推荐的一种-在babel中写

// 这个虚拟dom的内容不能够写引号,单引号双引号
const VDOM = <h1>nihao  react</h1>
// 可以使用括号进行编写
const VDOM1 = (<h1>nihao  react</h1>
)
// 只有这里会写一次 通过原生api操作dom
reactDOM.render(VDOM,document.getElementById("test")) 

虚拟DOM本质

1. 本质是Object类型对象.一般对象.就是 js 中 的 obj 对象
2. 比较轻.没有真是dom那么多属性
3. 虚拟dom最终会转为真是dom

jsx

语法规则

1. 定义DOM时 不要写 引号
2. 标签混入 js 表达式的时候 需要使用 {   }. 表达式有返回值
3. 样式类名要写 className
4. 内敛样式要写 style={{key:value}}
5. 只能有一个根标签
6. 标签首字母是小写.会转换成html同名元素.如果没有同名元素,则会报错如果首字母大写.react会去渲染对应组件.没有定义组件,则报错
7. 

jsx作用

为了解决创建虚拟DOM繁琐的作用

写样式

// 在css中编写样式
const VDOM1 = (// 可以写 class,会警告.老版本报错<h1 className='title'>nihao  react</h1>
)
// 只有这里会写一次 通过原生api操作dom
reactDOM.render(VDOM,document.getElementById("test")) 

内联样式

const VDOM1 = (// 可以写 class,会警告.老版本报错// 外面的{} 代表写js表达式,里面的{}代表要写 json 格式对象<h1 className='title' style={{}}>nihao  react</h1>
)
// 只有这里会写一次 通过原生api操作dom
reactDOM.render(VDOM,document.getElementById("test")) 

数据

写个数组

能够遍历

const arr= ['1','2']
const VDOM1 = (// 可以写 class,会警告.老版本报错// 外面的{} 代表写js表达式,里面的{}代表要写 json 格式对象<div><h1 className='title' style={{color:withe}}>nihao  react</h1><ul>{arr}</ul><div/>
)
// 只有这里会写一次 通过原生api操作dom
reactDOM.render(VDOM,document.getElementById("test")) 

写个对象

react里面写对象,会报错.不能够这么写.

const obj = {'a':'1','b':'2'}
const VDOM1 = (// 可以写 class,会警告.老版本报错// 外面的{} 代表写js表达式,里面的{}代表要写 json 格式对象<div><h1 className='title' style={{color:withe}}>nihao  react</h1><ul>{arr}</ul><div/>
)
// 只有这里会写一次 通过原生api操作dom
reactDOM.render(VDOM,document.getElementById("test"))

表达式

产生一个值的,是表达式. 放在需要值的地方

对数组数据进行加工

const obj = {'a':'1','b':'2'}
const VDOM1 = (// 可以写 class,会警告.老版本报错// 外面的{} 代表写js表达式,里面的{}代表要写 json 格式对象<div><h1 className='title' style={{color:withe}}>nihao  react</h1>{arr.map((item)=>{return <li>item</li>})}<div/>
)
// 只有这里会写一次 通过原生api操作dom
reactDOM.render(VDOM,document.getElementById("test"))
报错

react中每一个节点都需要一个key 属性

const obj = {'a':'1','b':'2'}
const VDOM1 = (// 可以写 class,会警告.老版本报错// 外面的{} 代表写js表达式,里面的{}代表要写 json 格式对象<div><h1 className='title' style={{color:withe}}>nihao  react</h1>{arr.map((item,index)=>{return <li key={index}>{item}</li>})}<div/>
)
// 只有这里会写一次 通过原生api操作dom
reactDOM.render(VDOM,document.getElementById("test"))
http://www.dtcms.com/a/136108.html

相关文章:

  • Vue 3 中 ref和reactive的详细使用场景
  • 使用阿里云创建公司官网(使用wordpress)
  • 菊厂20250416软件机考T2解答(200分)
  • GR00T N1:面向通用类人机器人的开放基础模型
  • Google Cloud最新报告:全球领先企业AI应用案例与智能体落地方向探索
  • 利用Global.asax在ASP.NET Web应用中实现功能
  • 绿盟二面面试题
  • 概念实践极速入门 - 常用的设计模式 - 简单生活例子
  • 在 Redis Lua 脚本中,keyCount 参数的作用是明确区分脚本参数中的 KEYS 和 ARGV,具体关系如下:
  • JNI的使用
  • 华为OD机试真题——硬件产品销售方案(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
  • 设计模式(责任链模式)
  • SyntaxError: Unexpected end of JSON input 内容被截断报错
  • ios接入穿山甲【Swift】
  • 自动驾驶创建场景(just soso)
  • 用 Iris数据做决策树分析
  • 充电宝项目:规则引擎Drools学习
  • 【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——EEPROM、SPI FLASH测试 #AT24C64 #W25Q128
  • 黑马商城项目(二) Docker
  • Docker 中多个容器之间的通信
  • (Linux操作系统)自定义shell的实现
  • react使用createFromIconfontCN,自定义iconfont 图标
  • 艺术字体AI生成阿里云WordArt锦书、通义万相、SiliconFlow、Pillow+OpenCV本地生成艺术字体
  • web前端开发:CSS的常用选择器
  • 第七节:React HooksReact 18+新特性-并发模式(Concurrent Mode)解决了什么问题?
  • C++ IO流
  • CANoe自动化测试用例log保存(专栏:车载网络诊断测试攻略从零开始搭建一个UDS诊断自动化测试CANoe工程)
  • 58.最后一个单词的长度
  • 使用excel 制作数据库的数据浏览器
  • 使用cursor进行原型图设计