美文网首页
1-JSX和渲染

1-JSX和渲染

作者: WJ_Totoro | 来源:发表于2018-03-15 15:52 被阅读0次

1. conception

JSX —— JS和XML结合的一种格式,是一个JS的语法扩展,具有js的全部功能,允许HTML和JS的混写。遇到 "<"就以HTML语言解析,“{”则以JS语法解析。可以更好的描述UI应该呈现出它应有交互的本质形式。

const element = <h1>Hello,world!</h1>

使用JSX的原因?

react没有采用将标记与逻辑分离到不同文件这种分离方式,而是使两者在组件中共存,来实现“关注点分离”。

2. grammer

· JSX允许在模板里直接添加JS变量,若变量是个数组,则会直接展开。在添加HTML时,如果有多个标签元素,需要用一个标签元素包裹起来,等同Vue中的模板必须要有一个唯一的根元素一样。

1-1

· 在JSX语法中,可以在大括号内放置任何有效的JS表达式,在编译之后JSX表达式会被转为普通JS函数调用,取值后得到JS对象。

· JSX中无法使用if-else语句,用三元表达式来代替,另对同一个属性不能同时使用引号(对于字符串值)和大括号(对于表达式)。

· JSX语法上更接近JS而非HTML,所以使用小驼峰命名约定。

· react dom在渲染所有输入内容之前,默认会进行转义,可确保在应用中不会注入那些并非自己明确编写的内容,所有的内容在渲染之前都被转换成了字符串,有效地防止XSS攻击。

· 关于注释,在标签外的不需要花括号,标签内的需要。

· Babel会将JSX解析成React.createElement() ,下图中两种例子是完全相同的。

1-2

React.createElement()会预先执行一些检查,并且创建一个element对象,这个对象被称为React元素,React通过读取这些对象,然后构建DOM以及保持更新。

与浏览器DOM元素不同,react dom负责更新DOM来匹配react元素。react元素是不可突变的,一旦被创建将无法修改其子元素和任何属性,唯一更新的方法是创建一个新的元素并传入render中。

1-3

· 阻止渲染:要求返回null。

3. render

元素是构成React应用的最小砖块,描述了用户想在屏幕上看到的内容,创建开销极小的普通对象。

仅使用React构建的应用通常只有单一的根DOM节点,如果是将React集成进一个已有应用,就可以在应用中包含任意数目的独立根DOM节点,想要将一个React元素渲染到根DOM节点中,只需要把它们一起传入ReactDOM.render()。

React元素是不可变对象,一旦被创建就无法更改其子元素或属性,更新UI的唯一方式是创建一个全新的元素并将其传入ReactDOM.render(),大多数React应用只会调用一次ReactDOM.render(),且React只更新需要更新的部分,当创建一个描述整个UI树的元素,React DOM会将元素和子元素与之前的状态进行对比,然后只更新实际改变了的内容。

条件渲染:声明一个变量进行条件渲染是最基础的方式,但不够简洁

1-4

· 使用运算符 && ,原理是在JS中, true && expression总是会返回expression,而false && expression总是会返回false,因此当为真时,&&右侧的元素就会被渲染,反之React就会跳过。

1-5

· 另一种内联条件渲染方法是使用三元运算符,不过当条件过于复杂优先考虑提取组件。

阻止元素渲染:render方法返回Null即可,在组件的render()返回null并不会影响组件的生命周期,钩子函数仍会被调用。

相关文章

  • 1-JSX和渲染

    1. conception JSX —— JS和XML结合的一种格式,是一个JS的语法扩展,具有js的全部功能,允...

  • GPU & OpenGL相关 & 状态机 2022-06-15

    渲染分离线渲染(离线烘焙) 和 实时渲染。 实时渲染的技术实现分 普通渲染 和 光线追踪算法渲染https://w...

  • 前端渲染和后端渲染

    服务端渲染(吐)服务端在返回 html 之前,在特定的区域,符号里用数据填充,再给客户端,客户端只负责解析 HTM...

  • 前端渲染和后端渲染

    一、后端渲染和后端路由 1.后端渲染 在前期开发时,在浏览器中输入url想获取对应的页面时,服务器会解析该url,...

  • 条件渲染和列表渲染

    1.条件渲染(v-if、v-else-if、v-else) 与JavaScript的条件语句if、else、els...

  • Shader-更复杂的光照-渲染路径

    渲染路径 前向渲染路径、延迟渲染路径和顶点照明渲染路径 1.前向渲染路径原理 前向渲染需要渲染该对象的渲染图元,并...

  • 条件和列表渲染

    一、前言 条件渲染和列表渲染其实就是使用vue的v-if和v-for两个指令来控制是否渲染和循环渲染的逻辑。 二、...

  • Vue条件渲染和列表渲染

    1.条件渲染 v-if 根据此指令可决定是否会在页面展示当前标签 上述代码不展示 div标签内容,我们在控制台查看...

  • 前向渲染和延迟渲染

    什么时候用延迟渲染? 使用许多动态灯光 = 应该使用延迟渲染 前向渲染 前向渲染是线性的,每个几何图元线性传递最终...

  • 学习并实现react (2)

    组件列表渲染场景 DOM复用 react 的重点在于首次渲染和更新渲染,现在考虑更新渲染如何复用DOM 让渲染更有...

网友评论

      本文标题:1-JSX和渲染

      本文链接:https://www.haomeiwen.com/subject/bymfqftx.html