首页 web前端 js教程 一文知晓JSX原理(推荐)

一文知晓JSX原理(推荐)

Jan 06, 2022 pm 03:38 PM
jsx

要明白JSX的原理,需要先明白如何使用JavaScript对象来表现一个DOM元素的结构。
看下面的DOM结构:

<div class=&#39;app&#39; id=&#39;appRoot&#39;>
  <h1 class=&#39;title&#39;>欢迎进入React的世界</h1>
  <p>
    React.js 是一个帮助你构建页面 UI 的库
  </p>
</div>
登录后复制

上面这个HTML所有的信息我们都可以使用JavaScript对象来表示:

{
  tag: &#39;p&#39;,
  attrs: { className: &#39;app&#39;, id: &#39;appRoot&#39;},
  children: [
    {
      tag: &#39;h1&#39;,
      attrs: { className: &#39;title&#39; },
      children: [&#39;欢迎进入React的世界&#39;]
    },
    {
      tag: &#39;p&#39;,
      attrs: null,
      children: [&#39;React.js 是一个构建页面 UI 的库&#39;]
    }
  ]
}
登录后复制

但是这样用JavaScript写起来太长了,而且结构也不清晰,使用HTML的方式就很方便。
于是React.js就把JavaScript的语法扩展了一下,允许在JavaScript代码中编写类似HTML标签结构的语法,这样就方便多了,编译的过程会把类似HTML的JSX结构转换为JavaScript的对象结构。

import React from &#39;react&#39;
import ReactDOM from &#39;react-dom&#39;

class App extends React.Component {
  render () {
    return (
      <p className=&#39;app&#39; id=&#39;appRoot&#39;>
        <h1 className=&#39;title&#39;>欢迎进入React的世界</h1>
        <p>
          React.js 是一个构建页面 UI 的库
        </p>
      </p>
    )
  }
}

ReactDOM.render(
    <App />,
  document.getElementById(&#39;root&#39;)
)
登录后复制

转换为

import React from &#39;react&#39;
import ReactDOM from &#39;react-dom&#39;

class App extends React.Component {
  render () {
    return (
      React.createElement(
        "p",
        {
          className: &#39;app&#39;,
          id: &#39;appRoot&#39;
        },
        React.createElement(
          "h1",
          { className: &#39;title&#39; },
          "欢迎进入React的世界"
        ),
        React.createElement(
          "p",
          null,
          "React.js 是一个构建页面 UI 的库"
        )
      )
    )
  }
}

ReactDOM.render(
    React.createElement(App),
  document.getElementById(&#39;root&#39;)
)
登录后复制

React.createElement会构建一个 JavaScript 对象来描述你 HTML 结构的信息,包括标签名、属性、还有子元素等, 语法为

React.createElement(
  type,
  [props],
  [...children]
)
登录后复制

所谓的 JSX 其实就是 JavaScript 对象,所以使用 React 和 JSX 的时候一定要经过编译的过程

JSX — 使用react构造组件,bable进行编译 —> JavaScript对象 — ReactDOM.render() —> DOM元素 —> 插入页面

推荐学习:《js基础教程

以上是一文知晓JSX原理(推荐)的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

聊聊Vue怎么通过JSX动态渲染组件 聊聊Vue怎么通过JSX动态渲染组件 Dec 05, 2022 pm 06:52 PM

Vue怎么通过JSX动态渲染组件?下面本篇文章给大家介绍一下Vue高效通过JSX动态渲染组件的方法,希望对大家有所帮助!

Vue中什么是JSX?什么时候用?怎么用? Vue中什么是JSX?什么时候用?怎么用? Jan 16, 2023 pm 08:23 PM

Vue中什么是JSX?下面本篇文章给大家了解一下Vue中的JSX,介绍一下什么时候使用JSX、在Vue2中的基本使用,希望对大家有所帮助!

详解Vue3+Vite中怎么使用JSX 详解Vue3+Vite中怎么使用JSX Dec 09, 2022 pm 08:27 PM

Vue+Vite中怎么使用JSX?下面本篇文章给大家介绍一下Vue3+Vite 中 JSX 的使用方式,希望对大家有所帮助!

怎么在vue3中使用jsx语法 怎么在vue3中使用jsx语法 May 12, 2023 pm 12:46 PM

背景vue3项目中推进使用composition-api+setup形式配合jsx+hooks形式,按业务分离,逻辑更清晰,维护更方便。语法下面主要通过对比jsx和template不同语法,来实现同样的功能一丶普通内容普通内容常量,写法是一样的//jsx写法setup(){return()=>hello}//tempalte写法hello二丶动态变量jsx统一使用大括号包裹变量,没有引号,比如{age}tempalte内容使用双大括号包裹,属性变量使用冒号开头如{{age}}{}是jsx的

Vite创建Vue3项目及Vue3使用jsx的方法 Vite创建Vue3项目及Vue3使用jsx的方法 May 22, 2023 pm 01:58 PM

Vite创建Vue3项目Vite需要Node.js版本>=12.0.0。(node-v查看自己当前的node版本)使用yarn:yarncreate@vitejs/app使用npm:npminit@vitejs/app1.输入项目名称这里输入我们的项目名称:vite-vue32.选择框架这里选择我们需要集成的框架:vuevanilla:原生js,没有任何框架集成vue:vue3框架,只支持vue3react:react框架preact:轻量化react框架lit-element:轻量级we

Vue如何实现JSX语法和组件化编程? Vue如何实现JSX语法和组件化编程? Jun 27, 2023 am 11:48 AM

Vue是一款流行的前端框架,提供了一套基于组件的开发模式。然而,Vue原生并不支持JSX语法,但是我们可以通过使用第三方库来实现JSX语法和组件化编程。一、什么是JSXJSX是一种JavaScript的扩展语法,可以在JavaScript中编写类似于HTML的代码。React是第一个引入JSX语法的前端框架,使用JSX语法可以更加自然和方便的描

怎么在Vue3中使用jsx/tsx 怎么在Vue3中使用jsx/tsx May 11, 2023 pm 02:07 PM

JSX如何用这里以vite项目为例,要想在项目中使用JSX,我们需要安装一个插件@vitejs/plugin-vue-jsx,这个插件可以让我们在项目中使用JSX/TSXnpmi@vitejs/plugin-vue-jsx-D安装完成之后在vite.config.ts进行一个配置即可import{defineConfig}from"vite";importvuefrom"@vitejs/plugin-vue";importvueJsxfrom"@

一文详解vue3中使用JSX的方法 一文详解vue3中使用JSX的方法 Nov 25, 2022 pm 09:01 PM

vue中如何使用JSX?下面本篇文章给大家介绍一下vue3中使用JSX的方法,希望对大家有所帮助!

See all articles