| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> React学习(1)- JSX -> 正文阅读 |
|
[JavaScript知识库]React学习(1)- JSX |
React学习(2)- React组件React学习(3)- 组件交互什么是JSX?先看这段既像JavaScript又像HTML的代码,这段代码等号后面的这部分<h1>Hello, world!</h1>就叫JSX。
简单来说,用了JSX 就可以在JavaScript文件里写HTML代码了,而且在JSX里可以调用JavaScript里的参数。 具体定义可以参考:Introducing JSX – React 嵌套JSX元素在JSX中,为了使代码能够被编译,JSX表达式必须正好有一个最外层元素 比如下面这段代码,就不可行,因为有两个同级的<p>
需要加一个最外层元素:(不一定必须是<div></div>,也可以是其他的)
渲染JSXJSX是JavaScript的一个语法扩展,它被用来创建DOM元素,然后在React DOM中呈现。 渲染一个JSX表达式意味着使其出现在屏幕上。`ReactDOM.render()`是渲染JSX的最常用方法。它接受一个JSX表达式,创建一个相应的DOM节点树,并将该树添加到DOM中。这是使JSX表达式出现在屏幕上的方法。
ReactDOM.render的第一个参数是要被编译和渲染的JSX表达式,第二个参数是我们想把它附加到的HTML元素。
多行JSX表达式当有多行JSX表达式的时候,需要使用括号()
JSX属性和HTML一样,也可以在JSX中添加属性。
也可以用嵌入的JavaScript设置JSX属性值
在JSX中嵌入JavaScript嵌入的JavaScript表达式必须用大括号包裹起来 JSX标签之间的任何文本将被作为文本内容阅读,而不是作为JavaScript。为了使文本作为JavaScript被阅读,代码必须嵌入大括号{ }之间。 当用大括号{}包裹起1010时,相当于告诉编译器这是一个JavaScript表达式,所以会执行10*10的计算,下面这段代码会被渲染成 <h1>100</h1>。
虚拟DOMReact使用Virtual DOM,它可以被认为是DOM的一个蓝图。 ReactDOM.render()的一个特殊之处在于,它只更新发生变化的DOM元素。这意味着,如果你连续两次渲染完全相同的东西,第二次渲染将不做任何事情。 当React元素发生任何变化时,虚拟DOM会被更新。虚拟DOM找到它和DOM之间的差异,并只重新呈现DOM中改变的元素。这使得虚拟DOM比更新整个DOM更快、更有效。
JSX className在JSX中要用className代替class 这是因为JSX要被翻译成JavaScript,而class在JavaScript已经被占用了。
JSX && 条件语句在JSX中,&&通常用于根据一个布尔条件来渲染一个元素。 如果&&左边的表达式评估为true,那么&&右边的JSX将被渲染。然而,如果第一个表达式为false,那么&&右边的JSX将被忽略,不会被呈现。
JSX条件式JSX不支持嵌入式JavaScript中的if/else语法。有三种方法可以表达条件:
JSX元素事件监听器JSX元素可以有event listeners,就像HTML元素可以一样。在React中编程意味着不断要和event listener打交道。
JSX .map()方法数组方法map()在React中经常出现。养成与JSX一起使用它的习惯是很好的。 如果你想从一个给定的数组中创建一个JJSX元素的列表,那么就用map()方法覆盖数组中的每个元素,为每个元素返回一个列表项。
JSX空元素语法在JSX中,像<p></p>, <div></div>这样的元素不需要加斜线,而像<br><img>这样的空元素必须在其标签的末尾用斜线关闭:
JSX key属性在JSX元素的列表中,key属性被用来唯一地识别各个元素。它像其他属性一样被声明。 key可以帮助提高性能,因为它们允许React跟踪单个列表项目是否应该被渲染,或者单个项目的顺序是否重要。
参考:CodeCademy |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 12:52:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |