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>
相关文章
|
3月前
|
JavaScript 前端开发 容器
React零基础入门02--JSX语法基础
React零基础入门02--JSX语法基础
React零基础入门02--JSX语法基础
|
3月前
|
前端开发 JavaScript 定位技术
React 地图组件 Mapbox 入门指南
Mapbox 是一个强大的地图平台,提供丰富的地图数据和工具,支持多种开发语言和框架。本文介绍如何在 React 项目中使用 Mapbox,涵盖基础概念、安装配置、基本用法、常见问题及解决方法、高级用法等内容,并通过代码示例详细说明,帮助开发者提升地图应用的开发效率和用户体验。
164 2
|
3月前
|
前端开发 API UED
React 图片轮播 Carousel:从入门到进阶
本文介绍了在 React 中实现图片轮播(Carousel)的方法,从基础安装和配置 `react-slick` 开始,逐步讲解了常见问题如图片路径、性能优化、自定义样式和交互处理,以及高级话题如动态数据加载和响应式设计。通过详细示例,帮助开发者避免易错点,提升轮播图的用户体验。
75 3
|
3月前
|
XML 前端开发 JavaScript
react之了解jsx
react之了解jsx
|
3月前
|
监控 前端开发 JavaScript
React 静态网站生成工具 Next.js 入门指南
【10月更文挑战第20天】Next.js 是一个基于 React 的服务器端渲染框架,由 Vercel 开发。本文从基础概念出发,逐步探讨 Next.js 的常见问题、易错点及解决方法,并通过具体代码示例进行说明,帮助开发者快速构建高性能的 Web 应用。
142 10
|
4月前
|
XML 前端开发 JavaScript
React JSX
React 使用 JSX(一种类似 XML 的 JavaScript 语法扩展)来替代传统 JavaScript 编写 UI。JSX 使代码更简洁、执行更快且类型安全。例如,`&lt;h1&gt;Hello, world!&lt;/h1&gt;` 实际上是创建一个 React 元素,通过 `ReactDOM.render()` 渲染到 DOM。注意,JSX 中使用 `className` 替代 HTML 的 `class` 属性。
|
4月前
|
前端开发 JavaScript 开发者
探索现代Web前端技术:React框架入门
【10月更文挑战第9天】 探索现代Web前端技术:React框架入门
|
3月前
|
存储 前端开发 JavaScript
react之jsx编译原理
react之jsx编译原理
|
4月前
|
XML 前端开发 JavaScript
React JSX
10月更文挑战第7天
23 2
|
3月前
|
前端开发 JavaScript 开发者
颠覆传统:React框架如何引领前端开发的革命性变革
【10月更文挑战第32天】本文以问答形式探讨了React框架的特性和应用。React是一款由Facebook推出的JavaScript库,以其虚拟DOM机制和组件化设计,成为构建高性能单页面应用的理想选择。文章介绍了如何开始一个React项目、组件化思想的体现、性能优化方法、表单处理及路由实现等内容,帮助开发者更好地理解和使用React。
107 9