react06-jsx渲染机制

这篇具有很好参考价值的文章主要介绍了react06-jsx渲染机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

react06-jsx渲染机制

react.createElemnet() ==》 构建虚拟dom

构建视图的具体流程 :

  • 将jsx语法,编译为虚拟dom对象 ,根据react中的处理生成virtualDom ,这是react自己内部构建的一套对象体系,基于jsx中的属性描述构建成视图中真实DOM的相关描述,具体通过 React.createElement(type , props , children)
  • 将虚拟dom构建成真实dom
  • 补充: 第一次渲染是直接从虚拟dom----> 真实dom,之后的每次视图更新都是根据diff比对进行计算,生成两次的差异部分的PATH布丁包

react06-jsx渲染机制,react,react.js,前端

在https://babeljs.io中看一下具体的编译后结果 react06-jsx渲染机制,react,react.js,前端
将右侧编译后的代码在vs code中展示如下: react06-jsx渲染机制,react,react.js,前端
打印出来可以看到 react06-jsx渲染机制,react,react.js,前端
react06-jsx渲染机制,react,react.js,前端

virtualDOM = {
$$typeof : Symbol(react.element),
ref: null,
key : null ,
type: 标签名或「组件名」
props : {
// 元素的相关属性,className,x,y,title …
// children : 子节点信息「没有子节点则没有此属性,若只有一个子节点为对象,若有多个子节点则为数组,每个元素为子节点virtualDom对象」
} ,
}

以上是react内部的创建虚拟dom的过程,接下来是通过render方法将virtualDom创建成真实dom,然后浏览器渲染

react.render() ===> 构建真实dom

v16 和 v18 语法上有些差异
v16 : ReactDom.render(<> …</> , document.getElementById(‘root’))
v18 : const root = ReactDom.createRoot(document.getElementById(‘root’)) root.render(<>…</>)

模拟一下大概的render处理
react06-jsx渲染机制,react,react.js,前端

先封装一个简单的对象遍历方法,方便对节点对象操作react06-jsx渲染机制,react,react.js,前端

这是我所了解到的react处理渲染大致流程,如有遗漏,欢迎补充交流文章来源地址https://www.toymoban.com/news/detail-860954.html

到了这里,关于react06-jsx渲染机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【前端知识】React 基础巩固(十四)——JSX 的转换过程和声明式编程

    jsx 仅仅只是 React.createElement(component, props, …children)函数的语法糖 所有的 jsx 最终都会被转换成 React.createElement 的函数调用 createElement 需要传递三个参数: type 当前 ReactElement 的类型 如果是标签元素,那么就使用字符串表示 “div” 如果是组件元素,那么就直接使用组件的名称

    2024年02月09日
    浏览(72)
  • 前端React篇之哪些方法会触发 React 重新渲染?重新渲染 render 会做些什么?

    在React中,以下方法会触发重新渲染: setState() :当调用组件的setState方法并传入新的状态值时,React会触发重新渲染。 forceUpdate() :可以强制组件重新渲染,不管组件的状态是否发生变化。 props改变 :当组件接收到新的props时,它会进行重新渲染。 context改变 :如果使用了

    2024年04月10日
    浏览(33)
  • 【前端知识】React 基础巩固(十三)——列表渲染

    在 React 中没有像 Vue 模块语法中的 v-for 指令,而是需要我们通过 JS 代码的方式组织数据,转成 JSX 在 React 中,展示列表最多的方式就是使用数组的 map 高阶函数 在展示数组前,有时会进行一些处理 过滤一些内容(filter 函数) 截取数组中的一部分内容(slice 函数) 列表中的

    2024年02月10日
    浏览(41)
  • 【React】‘React‘ must be in scope when using JSX react/react-in-jsx-scope

    React 报错: 意思是在使用 JSX 时,没有引入 React ,比如像这样: 在使用 import 引入时,没有引入 React 。所以在被 Eslint 的 \\\"plugin:react/recommended\\\" 检查时,就会报错。 于是很多人就选择引入的时候加上 React ,这样 这样确实不报错了,但是他们忽略了一个版本事实: 在 React@17

    2024年02月15日
    浏览(30)
  • 【react从入门到精通】React JSX详解

    ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入:全栈弄潮儿的个人社区 📙 专栏地址:react从入门到精通 【分享几个国内免费可用的ChatGPT镜像】 【10几个类ChatGPT国内AI大模型】 【用《文心一言》1分钟写一篇博客简直yyds】 【用

    2024年02月05日
    浏览(39)
  • 极致性能优化:前端SSR渲染利器Qwik.js

    前端性能已成为网站和应用成功的关键要素之一。用户期望快速加载的页面和流畅的交互,而前端框架的选择对于实现这些目标至关重要。然而,传统的前端框架在某些情况下可能面临性能挑战且存在技术壁垒。 在这个充满挑战的背景下,我们引入了 Qwik.js 框架。Qwik.js 不仅

    2024年02月05日
    浏览(46)
  • React02-JSX 语法

    React.createElement 是 jsx 语法的编译结果,这个函数用来创建一个 React 元素,它的返回值是一个 Virtual DOM(虚拟DOM)。 React.createElement(type, props, ...children) 第一个参数为元素类型,可以是标签名或组件名,第二个参数为元素属性,第三个参数为子节点列表。 以上2种写法是等价的

    2024年02月12日
    浏览(27)
  • 【React基础】– JSX语法

    ◼ 这段element变量的声明右侧赋值的标签语法是什么呢? ​  它不是一段字符串(因为没有使用引号包裹); ​  它看起来是一段HTML元素,但是我们能在js中直接给一个变量赋值html吗? ​  其实是不可以的,如果我们将 type=“text/babel” 去除掉,那么就会出现语法错误

    2024年01月21日
    浏览(59)
  • React笔记(二)JSX

    一、JSX JSX是javascript XML的简写,实际上是javascript的扩展,既有javascript的语法结构,又有XML的结构 1、JSX的规则要求 jsx必须要有一个根节点 如果不想产生无用的根标签,但是还要遵守JSX的语法的要求,可以使用如下两种方式 JSX必须要有一个根节点,而且编译之后在浏览器中不

    2024年02月11日
    浏览(32)
  • React的基础概念JSX

    首先我们需要创建虚拟DOM,然后渲染虚拟DOM到页面上展示 其次在写react的内容的时候,我们在script里面,需要填写类型为babel,而不是JavaScript。因此我们需要在上方引入babel文件夹 另外还需要引入react核心库和react-dom文件,react-dom是用于支持react操作DOM的 类型为babel是为了告诉

    2024年02月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包