仲灏小栈 仲灏小栈
首页
大前端
后端&运维
其他技术
生活
关于我
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

仲灏

诚意, 正心, 格物, 致知
首页
大前端
后端&运维
其他技术
生活
关于我
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 《前端项目基础建设》
  • HTML&CSS

  • JavaScript&TypeScript

  • Node

  • 构建

  • Vue

  • React

    • Vue 放弃繁琐的render函数,拥抱JSX
    • Awesome React
    • React 文档(vue版)
    • react 项目开发注意事项
    • 常见功能实现
    • react 常见坑集合
    • ant design pro 学习
    • ProComponents设计思路
    • 万条数据渲染优化
    • react hook 与 闭包
    • JSX
      • React生命周期
      • React 基本使用 setState
      • React 基本使用 组件生命周期
      • React 高级使用 性能优化
      • React 高级使用 高阶组件
      • React Redux使用
      • react-router 使用
      • React 原理
      • React 面试题1
      • React 面试题2
      • React 面试题3
      • React 面试题5
      • 仿jira项目笔记 项目起航:项目初始化与配置
      • 第6章 CSS 其实很简单 - 用 CSS-in-JS 添加样式
      • 第8章 Hook,路由,与 URL 状态管理
      • pro-components 源码学习
      • ant-design Spin组件封装
      • React 生命周期
    • 小程序

    • 跨端

    • Electron

    • WebGL&GIS

    • 浏览器

    • 面经

    • 其他

    • 大前端
    • React
    仲灏
    2022-06-22
    目录

    JSX

    # SX 代码是如何“摇身一变”成为DOM 的?

    • JSX 的本质是什么,它和 JS 之间到底是什么关系?

    • 为什么要用 JSX?不用会有什么后果?

    • JSX 背后的功能模块是什么,这个功能模块都做了哪些事情?

    # JSX 的本质:JavaScript 的语法扩展

    React 官网给出的一段定义:

    JSX 是 JavaScript 的一种语法扩展,它和模板语言很接近,但是它充分具备 JavaScript 的能力。

    # JSX 语法是如何在 JavaScript 中生效的:

    Babel 也具备将 JSX 语法转换为 JavaScript 代码的能力

    image-20220622092737303

    所有的 JSX 标签都被转化成了 React.createElement 调用,这也就意味着,我们写的 JSX 其实写的就是 React.createElement,虽然它看起来有点像 HTML,但也只是“看起来像”而已。JSX 的本质是React.createElement这个 JavaScript 调用的语法糖,这也就完美地呼应上了 React 官方给出的“JSX 充分具备 JavaScript 的能力”这句话。

    # React 选用 JSX 语法的动机

    • JSX 代码层次分明、嵌套关系清晰;

      • 而 React.createElement 代码则给人一种非常混乱的“杂糅感”,这样的代码不仅读起来不友好,写起来也费劲。
    • JSX 语法糖允许前端开发者使用我们最为熟悉的类 HTML 标签语法来创建虚拟 DOM,在降低学习成本的同时,也提升了研发效率与研发体验。

    # JSX 是如何映射为 DOM 的:

    JSX 会被编译为React.createElement(), React.createElement() 将返回一个叫作 “React Element” 的JS对象。

    生成vdom, 通过react.render 方法渲染出实际的dom

    上次更新: 2022/07/03, 15:02:21
    react hook 与 闭包
    React生命周期

    ← react hook 与 闭包 React生命周期→

    最近更新
    01
    vim日常使用记录
    04-02
    02
    滑动窗口最大值
    04-02
    03
    有效的字母异位词
    04-02
    更多文章>
    Theme by Vdoing | Copyright © 2021-2025 izhaong | github | 蜀ICP备2021031194号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式