React Jsx语法入门

简介: 【8月更文挑战第13天】React Jsx语法入门

概述

  1. 全称: JavaScript XML
  2. React定义的一种类似于XML的JS扩展语法: JS + XML本质是React.createElement(component, props, ...children)方法的语法糖
  3. 作用: 用来简化创建虚拟DOM
    1. 写法:var ele =

      Hello JSX!

    2. 注意1:它不是字符串, 也不是HTML/XML标签
    3. 注意2:它最终产生的就是一个JS对象
  4. 标签名任意: HTML标签或其它标签
  5. 标签属性任意: HTML标签属性或其它

    基本语法规则

    <!DOCTYPE html>
    <html lang="en">
    <head>
     <meta charset="UTF-8">
     <title>jsx语法规则</title>
     <style>
         .title{
          
             background-color: orange;
             width: 200px;
         }
     </style>
    </head>
    <body>
     <!-- 准备好一个“容器” -->
     <div id="test"></div>
    
     <!-- 引入react核心库 -->
     <script type="text/javascript" src="../js/react.development.js"></script>
     <!-- 引入react-dom,用于支持react操作DOM -->
     <script type="text/javascript" src="../js/react-dom.development.js"></script>
     <!-- 引入babel,用于将jsx转为js -->
     <script type="text/javascript" src="../js/babel.min.js"></script>
    
     <script type="text/babel" >
         const myId = 'aTgUiGu'
         const myData = 'HeLlo,rEaCt'
    
         //1.创建虚拟DOM
         const VDOM = (
             <div>
                 <h2 className="title" id={
          myId.toLowerCase()}>
                     <span style={
          {
          color:'white',fontSize:'29px'}}>{
          myData.toLowerCase()}</span>
                 </h2>
                 <h2 className="title" id={
          myId.toUpperCase()}>
                     <span style={
          {
          color:'white',fontSize:'29px'}}>{
          myData.toLowerCase()}</span>
                 </h2>
                 <input type="text"/>
             </div>
         )
         //2.渲染虚拟DOM到页面
         ReactDOM.render(VDOM,document.getElementById('test'))
     </script>
    </body>
    </html>
    
  6. 定义虚拟DOM时,不要写引号。

  7. 标签中混入JS表达式时要用 { }。(标签中不能使用js语句)
  8. 样式的类名指定不要用 class,要用 className。(因为class是ES6中类的关键字,所以不让用)
  9. 内联样式,要用 style={ { key:value }} 的形式去写。
  10. 只有一个根标签
  11. 标签必须闭合
  12. 标签首字母
    1. 小写字母开头,则将该标签转为html中同名元素,若html中无该标签对应的同名元素,则报错。
    2. 大写字母开头,React就去渲染对应的组件,若组件没有定义,则报错。
  13. babel.js的作用
  • 浏览器不能直接解析JSX代码, 需要babel转译为纯JS的代码才能运行
  • 只要用了JSX,都要加上type="text/babel", 声明需要babel来处理

    区分js表达式与js语句

  1. 表达式:一个表达式会产生一个值,可以放在任何一个需要值的地方,下面这些都是表达式:
    ```typescript
    a

a+b

demo(1) // 函数调用表达式

arr.map()

function test () {}

2.语句(代码),下面这些都是语句(代码):【控制语句,控制代码走向,而不是产生值】
```typescript
if(){ }

for(){ }

switch( ){case:xxxx}

小练习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jsx小练习</title>
</head>
<body>
    <!-- 准备好一个“容器” -->
    <div id="test"></div>
    <!-- 引入react核心库 -->
    <script type="text/javascript" src="../js/react.development.js"></script>
    <!-- 引入react-dom,用于支持react操作DOM -->
    <script type="text/javascript" src="../js/react-dom.development.js"></script>
    <!-- 引入babel,用于将jsx转为js -->
    <script type="text/javascript" src="../js/babel.min.js"></script>
    <script type="text/babel" >
        //模拟一些数据
        const data = ['Angular','React','Vue']
        //1.创建虚拟DOM
        const VDOM = (
            <div>
                <h1>前端js框架列表</h1>
                <ul>
                    {
    
                        data.map((item,index)=>{
    
                            return <li key={
    index}>{
    item}</li>
                        })
                    }
                </ul>
            </div>
        )
        //2.渲染虚拟DOM到页面
        ReactDOM.render(VDOM,document.getElementById('test'))
    </script>
</body>
</html>
相关文章
|
1月前
|
前端开发 JavaScript
学习react基础(3)_setState、state、jsx、使用ref的几种形式
本文探讨了React中this.setState和this.state的区别,以及React的核心概念,包括核心库的使用、JSX语法、类与函数组件的区别、事件处理和ref的使用。
49 3
学习react基础(3)_setState、state、jsx、使用ref的几种形式
|
8天前
|
前端开发 JavaScript 开发者
探索现代Web前端技术:React框架入门
【10月更文挑战第9天】 探索现代Web前端技术:React框架入门
|
10天前
|
XML 前端开发 JavaScript
React JSX
10月更文挑战第7天
10 2
|
1月前
|
移动开发 前端开发 JavaScript
构建高效跨平台移动应用:React Native入门指南
【8月更文挑战第47天】在移动开发领域,React Native凭借其跨平台特性和高效的开发模式赢得了开发者的青睐。本文将通过一个简易的待办事项应用实例,带领读者快速入门React Native,并展示如何利用JavaScript和React框架构建具有原生性能的应用。我们将探讨环境配置、界面布局、状态管理和数据流,以及如何打包和发布您的应用。准备好,让我们开始React Native之旅!
67 20
|
1月前
|
前端开发 JavaScript
React技术栈-React UI之ant-design使用入门
关于React技术栈中使用ant-design库的入门教程,包括了创建React应用、搭建开发环境、配置按需加载、编写和运行代码的步骤,以及遇到错误的解决方法。
31 2
React技术栈-React UI之ant-design使用入门
|
1月前
|
XML 存储 前端开发
React 基础入门
【9月更文挑战第1天】本文详细介绍了由Facebook开发的JavaScript库React,涵盖环境搭建、基本概念、常见问题及解决方案。首先,通过安装Node.js、npm和Create React App快速搭建开发环境;接着,讲解了JSX、组件(包括函数和类组件)、state和props等核心概念;最后,针对JSX语法错误、state异步更新及props与state混淆等问题提供了具体的解决方法和示例代码,帮助读者更好地理解和应用React。
28 2
|
2月前
|
前端开发 JavaScript 开发者
React 的 ES6 语法与 ES5 相比有何不同?
【8月更文挑战第30天】
50 1
|
2月前
|
移动开发 前端开发 JavaScript
构建高效跨平台移动应用:React Native入门指南
【8月更文挑战第31天】 在移动开发领域,React Native凭借其跨平台特性和高效的开发模式赢得了开发者的青睐。本文将通过一个简易的待办事项应用实例,带领读者快速入门React Native,并展示如何利用JavaScript和React框架构建具有原生性能的应用。我们将探讨环境配置、界面布局、状态管理和数据流,以及如何打包和发布您的应用。准备好,让我们开始React Native之旅!
|
2月前
|
开发者
告别繁琐代码,JSF标签库带你走进高效开发的新时代!
【8月更文挑战第31天】JSF(JavaServer Faces)标准标签库为页面开发提供了大量组件标签,如`&lt;h:inputText&gt;`、`&lt;h:dataTable&gt;`等,简化代码、提升效率并确保稳定性。本文通过示例展示如何使用这些标签实现常见功能,如创建登录表单和展示数据列表,帮助开发者更高效地进行Web应用开发。
37 0
|
2月前
|
前端开发 JavaScript UED
🎬JSF 与 Ajax:打造瞬间响应的魔法界面!🚀 用户输入即刻,数据交互如梦幻泡影般呈现!
【8月更文挑战第31天】在现代Web应用中,异步数据交互是提升用户体验的关键。JavaServer Faces (JSF) 作为标准Java Web框架,结合Ajax技术,可轻松实现页面异步更新与数据交互。本文通过示例代码介绍如何在JSF中使用Ajax组件(如`f:ajax`)及后端处理方法实现异步功能,并结合JavaScript处理复杂交互,帮助开发者提升Web应用体验。
36 0