网站首页 > 基础教程 正文
React定义的一种类似于XML的JS扩展语法,用来简化创建虚拟DOM
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jsx</title>
<style>
.title{
background-color: orange:
width: 200px;
}
</style><!--定义个样式,也可以写在CSS文件里,引入进来-->
</head>
<body>
<div id="test"></div>
<script type="text/javascript" src="../js/react.development.js"></script>
<script type="text/javascript" src="../js/react-dom.development.js"></script>
<script type="text/javascript" src="../js/babel.min.js"></script>
</body>
<script type="text/babel">
const myid= "lOVE you"
const mydata= "hellO jsx"
const VDOM = ( // <!--h2标签引入样式,用className,span标签引入内联样式的时候,不是用双引号,而是双花括号,-->
<div>
<h2 className="title" id={myid.toLowerCase()}>
<span style={{color:'red',fontSize:'29px'}}>{mydata.toLowerCase()}</span>
</h2>)// <!--标签中混入JS表达式时要用花括号{},如这里mydata取值 -->
//jsx中只能有一个根标签,比如这里的h2,可以在h2的外面包一层div,就可以写两个h2
<h2 className="title" id={myid.toUpperCase()}>
<span style={{color:'red',fontSize:'29px'}}>{mydata.toLowerCase()}</span>
</h2>)
//标签首字母若是小写字母,则将该标签转为html中同名元素,若html中无该标签对应的同名元素,则报错
//标签首字母若是大写字母,react就去渲染对应的组件,若组件没有定义,则报错
</div>
ReactDOM.render(VDOM,document.getElementById('test'))
</script>
</html>
一个jsx的小练习
<script type="text/babel">
const data=['A','B','C']
const VDOM = (
<div> //js表达式会产生一个值。js语句(代码),有if,for,switch判断,
<h1>jsx框架</h1>
<ul>
{
data.map((item,index)=>{
return <li key={index}>{item}</li>
}) //item拿到data里面对应的值,map遍历的第二个值是索引值,
}
</ul>
</div>
)
ReactDOM.render(VDOM,document.getElementById('test'))
</script>
对应的网页如下:
模块是向外提供特定功能的js程序,一般就是一个js文件。
组件比模块更高一级,比如实现一个网页的头部的html,字体,css,js,图像这些元素组合在一起,就形成了头部这个组件。
组件分为函数式组件和类式组件:
函数式组件:
<script type="text/babel">
function MyComponent(){
return <h2>show the function component</h2>
}
ReactDOM.render(<MyComponent/>,document.getElementById('test'))
//<MyComponent/>要写上标签,函数定义首字母需要大写
</script>
执行了ReactDOM.render(<MyComponent/>。。之后,React解析组件标签,找到MyComponent组件,发现组件是使用函数定义的,随后调用该函数,将返回的虚拟DOM转为真是DOM,随后呈现在页面中。
类式组件:
<script type="text/babel">
//创建类组件
class MyComponent extends React.Component{
render(){//render放在类MyComponent的原型对象上,供实例使用。render中的this就是MyComponent的实例对象(MyComponent组件实例对象)
return <h2>show the class component</h2>
}
}
ReactDOM.render(<MyComponent/>,document.getElementById('test'))
//执行了ReactDOM.render(<MyComponent/>之后,React解析组件标签,找到MyComponent组件,然后发现组件是用类定义的,就new出来该类的实例
//并通过该实例调用到原型上的render方法,将render返回的虚拟DOM转为真实DOM,随后呈现在页面上。
</script>
猜你喜欢
- 2024-10-12 菜鸟面试:(Object和String)时间类和日期类以及包装类等而谈
- 2024-10-12 做前端不得不会的纯js验证码,你知道吗?
- 2024-10-12 js——prototype 属性 js object.prototype
- 2024-10-12 2024 年 5 个令人兴奋的 JavaScript 新功能
- 2024-10-12 JavaScript 基本数据类型和引用类型的区别详解
- 2024-10-12 「JS 口袋书」第 1 和 2 章:JS简介及基础
- 2024-10-12 第15节 Javascript引用类型-Web前端开发-零点程序员-王唯
- 2024-10-12 javascript系统学习(五)万物皆对象
- 2024-10-12 讲解一下JavaScript基本类型和引用类型的值
- 2024-10-12 JavaScript 原型扩展——对象(Object)
- 最近发表
-
- 1G内存如何对40亿QQ号去重?(qq内存50g)
- Python的os模块:操作系统交互的得力助手
- 引爆你的效率!深入探索 Python os 模块那些不为人知的高阶玩法
- python 进阶突破——内置模块(Standard Library)
- 10行Python代码实现智能文件整理(python整理文件到指定文件夹)
- Python办公自动化系列篇之六:文件系统与操作系统任务
- Windows如何批量修改文件后缀名(电脑如何批量修改文件后缀名)
- Python常用内置模块介绍——文件与系统操作详解
- 每天一个Python库:标准库 os 模块,玩转文件和目录操作!
- Python目录与文件操作教程(python编程目录)
- 标签列表
-
- 菜鸟教程 (58)
- jsp (69)
- pythonlist (60)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- pythonif (68)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)