一文知晓JSX原理(推荐)

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

  

欢迎进入React的世界

  

    React.js 是一个帮助你构建页面 UI 的库  

登录后复制

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

{  tag: 'p',  attrs: { className: 'app', id: 'appRoot'},  children: [    {      tag: 'h1',      attrs: { className: 'title' },      children: ['欢迎进入React的世界']    },    {      tag: 'p',      attrs: null,      children: ['React.js 是一个构建页面 UI 的库']    }  ]}

登录后复制

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

import React from 'react'import ReactDOM from 'react-dom'class App extends React.Component {  render () {    return (      

欢迎进入React的世界

React.js 是一个构建页面 UI 的库

) }}ReactDOM.render( , document.getElementById('root'))

登录后复制

转换为

import React from 'react'import ReactDOM from 'react-dom'class App extends React.Component {  render () {    return (      React.createElement(        "p",        {          className: 'app',          id: 'appRoot'        },        React.createElement(          "h1",          { className: 'title' },          "欢迎进入React的世界"        ),        React.createElement(          "p",          null,          "React.js 是一个构建页面 UI 的库"        )      )    )  }}ReactDOM.render(    React.createElement(App),  document.getElementById('root'))

登录后复制

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

React.createElement(  type,  [props],  [...children])

登录后复制

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

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

推荐学习:《js基础教程

以上就是一文知晓JSX原理(推荐)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2703587.html

(0)

关于作者

上一篇 2025年3月7日 19:34:54
下一篇 2025年3月2日 06:12:35

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论