网站首页 > 基础教程 正文
React 使用 JSX 来替代常规的 JavaScript。
1、使用jsx的注意规则
- React元素的属性名使用驼峰命名法
- 特殊属性名:class -> calssName, for -> htmlFor, tabindex -> tabIndex
- 没有子节点的React元素可以使用 /> 结束。
- 推荐:使用小括号包裹JSX, 从而避免JS中的自动插入分号陷阱。
// 使用小括号包裹JSX
const div = (
<div> Hello JSX</div>
)
2、使用JavaScript表达式
注意规则:
- 单大括号中可以使用任意的JavaScript表达式
- JSX自身也是JS表达式
- JS中的对象是一个例外,一般只会出现在style属性中
- 不能在{}中出现语句的,比如:if/for等
const hName = <h1> 我是JSX </h1>
const sayHi = () => 'Hi~,箭头函数'
const div = (
<div>
<div>嵌套表达式,{hName}</div>
<p>{1}</p>
<p>{1 + 2}</p>
<p>{1 > 2 ? "大于":"小于或等于"}</p>
<p>{sayHi()}</p>
</div>
)
3、jsx可以条件渲染、列表渲染
- if/else,三元运算符,逻辑与运算符(&&)
- map()方法渲染一组数据
const citys = {
{id: 1, name: 'beijing'},
{id: 2, name: 'tianjin'},
{id: 3, name: 'shanghai'}
}
# 注意:渲染列表是应该添加key属性,key属性的值保证唯一
# 原则:map()遍历谁,就给谁添加key属性,尽量避免使用索引号作为key
const list = (
<ul>
{citys.map(item => <li key={item.id}>{item.name}</li>)}
</ul>
)
4、jsx 的样式处理
4.1、行内样式 ---style
const list = (
<h1 style={{ color: 'red', backgroundColor: 'skybule'}}>
jsx的样式处理
</h1>
)
ReactDOM.render(list, document.getElementById('root'))
4.2、类名 ---className(推荐)
<h1 className="title">
jsx的样式处理
</h1>
5、jsx的转换过程
- JSX是createElment()方法的语法糖
- JSX语法会被@babel/preset-react插件编译为createElement()方法
- React元素是一个普通的JS对象,用来描述你希望看到的内容。
——————————————————————————
海上生明月,天涯共此时。
情人怨遥夜,竟夕起相思。
灭烛怜光满,披衣觉露滋。
不堪盈手赠,还寝梦佳期。
- 望月怀远 【唐】张九龄
猜你喜欢
- 2024-11-02 React 中 JSX 与用户表单数据的交互
- 2024-11-02 React核心特性-从JSX到虚拟DOM react中的虚拟dom
- 2024-11-02 06 JSX与React 元素 react元素和组件
- 2024-11-02 前端开发React18 - 环境搭建和JSX
- 2024-11-02 React前端工程师,必须要知道的JSX基础知识
- 2024-11-02 React 也就这么回事 02 —— JSX 插值表达式、条件渲染以及列表渲染
- 2024-11-02 说说React Jsx转换成真实DOM过程?
- 2024-11-02 React入门指南:JSX的使用和常见语法
- 2024-11-02 前端开发react框架 - jsx语法 前端框架react入门
- 2024-11-02 React简单认识JSX react jss
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- 单例 (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)