React基本引入和JSX语法

这篇具有很好参考价值的文章主要介绍了React基本引入和JSX语法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.1 React介绍

1.1.1. 官网

  1. 英文官网: https://reactjs.org/
  2. 中文官网: https://react.docschina.org/

1.1.2. 介绍描述

  1. 用于动态构建用户界面的 JavaScript 库(只关注于视图)
  2. 由Facebook开源

1.1.3. React的特点

  1. 声明式编码
  2. 组件化编码
  3. React Native 编写原生应用
  4. 高效(优秀的Diffing算法)

1.1.4. React高效的原因

  1. 使用虚拟(virtual)DOM, 不总是直接操作页面真实DOM。
  2. DOM Diffing算法, 最小化页面重绘。

1.2  React的基本使用

1.2.1 相关js库

  1. react.js:React核心库。
  2. react-dom.js:提供操作DOM的react扩展库。
  3. babel.min.js:解析JSX语法代码转为JS代码的库。

引入时必须讲究顺序, react.js要在react-dom.js之前

1     <script type="text/javascript" src="../js/react.development.js"></script>
2     <!-- 引入react-dom,用于支持react操作DOM -->
3     <script type="text/javascript" src="../js/react-dom.development.js"></script>
4     <!-- 引入babel,用于将jsx转为js -->
5     <script type="text/javascript" src="../js/babel.min.js"></script>

或使用CDN引入

1     <script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
2     <script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
3     <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>

 

1.2.2 使用React

不使用脚手架直接html文件里引入

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>hello_react</title>
 6 </head>
 7 <body>
 8     <!-- 准备好一个“容器” -->
 9     <div id="test"></div>
10 
11     <!-- 引入react核心库 -->
12     <script type="text/javascript" src="../js/react.development.js"></script>
13     <!-- 引入react-dom,用于支持react操作DOM -->
14     <script type="text/javascript" src="../js/react-dom.development.js"></script>
15     <!-- 引入babel,用于将jsx转为js -->
16     <script type="text/javascript" src="../js/babel.min.js"></script>
17 
18     <script type="text/babel" > /* 此处一定要写babel */
19         //1.创建虚拟DOM
20         const VDOM = <h1>Hello,React</h1> /* 此处一定不要写引号,因为不是字符串 */
21         //2.渲染虚拟DOM到页面
22         ReactDOM.render(VDOM,document.getElementById('test'))
23     </script>
24 </body>
25 </html>

效果图如下,可以看到已经完成渲染

React基本引入和JSX语法

1.2.3  虚拟DOM与真实DOM

介绍中提到,react的优势有通过diff算法减少页面的重绘和重排来提升性能,所以就需要虚拟DOM的使用。我们编码时基本只需要操作react的虚拟DOM相关数据, react会转换为真实DOM变化而更新界面。

 

关于虚拟DOM:

  1. 本质是Object类型的对象(一般对象)
  2. 虚拟DOM比较“轻”,真实DOM比较“重”,因为虚拟DOM是React内部在用,无需真实DOM上那么多的属性。
  3. 虚拟DOM最终会被React转化为真实DOM,呈现在页面上。

 

 1         const VDOM = (  /* 此处一定不要写引号,因为不是字符串 */
 2             <h1 id="title">
 3                 <span>Hello,React</span>
 4             </h1>
 5         )
 6         //2.渲染虚拟DOM到页面
 7         ReactDOM.render(VDOM,document.getElementById('test'))
 8 
 9         const TDOM = document.getElementById('demo')
10         console.log('虚拟DOM',VDOM);
11         console.log('真实DOM',TDOM);

 

React基本引入和JSX语法

 

 

1.2.4 创建虚拟DOM的两种方式

1.纯JS式(不推荐)

React提供了一些API来创建一种 “特别” 的一般js对象 ,下面创建的就是一个简单的虚拟DOM对象

const VDOM = React.createElement('标签',{属性名1:属性值1,属性名2:属性值2},'内容')

但是大多数时候创建元素时都会遇到多层元素嵌套,比如下面的代码,一个h1标签里面装着一个span标签,就需要2次调React.createElement()方法,如果层数更多将非常不方便,而且对于查看内部的元素结构也非常不方便

const VDOM = React.createElement('h1',{id:'title'},React.createElement('span',{},'Hello,React'))

2.JSX方式

创建同样的结构,明显JSX更加清晰简单

 1     <script type="text/babel" > /* 此处一定要写babel */
 2         //1.创建虚拟DOM
 3         const VDOM = (  /* 此处一定不要写引号,因为不是字符串 */
 4             <h1 id="title">
 5                 <span>Hello,React</span>
 6             </h1>
 7         )
 8         //2.渲染虚拟DOM到页面
 9         ReactDOM.render(VDOM,document.getElementById('test'))
10     </script>

因为这里是JSX语法,不是普通的JS语法,所以书写的时候有一些差异,比如html结构不加引号直接可以写在里面作为虚拟DOM。

JSX语法规则

1.定义虚拟DOM时,不要写引号。

2.标签中混入JS表达式时要用{}。文章来源地址https://www.toymoban.com/news/detail-499619.html

3.样式的类名指定不要用class,要用className。
4.内联样式,要用style={{key:value}}的形式去写。
5.只有一个根标签
6.标签必须闭合
7.标签首字母
(1).若小写字母开头,则将该标签转为html中同名元素,若html中无该标签对应的同名元素,则报错。
(2).若大写字母开头,react就去渲染对应的组件,若组件没有定义,则报错。
 
以下是JSX语法操作样式和属性的例子,对于back这个类,直接在ul中使用字符串对className属性进行赋值。列表渲染,需要形成一个数组,所以使用大括号包裹数组的方式,{ arr },数组的具体内容是多个<li>。这里先是使用了JSX的行内样式来控制每个<li>的样式,这里的样式都是通过对象的形式来书写,多个单词组成的属性名要用小驼峰命名(第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母)。 在列表渲染中,必须要加入key这个属性作为元素的唯一标识,属性值一般是不相同的值比如id、手机号、身份证号、学号等唯一值。此处仅用于数据的展示,key就用index(diff算法相关内容)。
 1 <style>
 2         .back {
 3             background-color: red;
 4         }
 5     </style>
 6 </head>
 7 <body>
 8     <div id="root"></div>
 9 </body>
10 <script type="text/babel">
11     const data = ['Vue', 'React', 'Angular']
12     const VDom = (
13         <ul className="back" >
14             {data.map((item, index) => {
15                 return <li style={{ color: 'white', fontSize: "28px" }} key={index} >{item}</li>
16             })}
17         </ul>
18     )
19     ReactDOM.render(VDom, document.getElementById('root'))
20 
21 </script>
22 </html>

到了这里,关于React基本引入和JSX语法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • React入门 - 07(说一说 JSX 中的语法细节)

    本章内容 上一节内容我们完成了一个简单的 TodoList 案例。到现在为止我们已经知道怎么在 JSX 中使用 “js 表达式”和”列表渲染“了,本节我们继续使用之前的工程项目来编写代码,补充在 React 使用 JSX 语法的一些细节。 JSX 中使用表达式: { JS 表达式 } 可使用的 js 表达式

    2024年01月17日
    浏览(37)
  • 初识React: 基础(概念 特点 高效原因 虚拟DOM JSX语法 组件)

    React是一个由Facebook开源的JavaScript库,它主要用于构建用户界面。React的特点是使用组件化的思想来构建界面,使得代码的可复用性和可维护性大大提高。React还引入了虚拟DOM的概念,减少了对真实DOM的直接操作,加快了渲染速度。 React使用虚拟DOM,将页面的渲染操作转化为

    2024年02月14日
    浏览(56)
  • React【React是什么?、创建项目 、React组件化、 JSX语法、条件渲染、列表渲染、事件处理】(一)

           React是什么? 为什么要学习React  React开发前准备  创建React项目 

    2024年02月11日
    浏览(52)
  • 【uniapp 小程序开发语法篇】资源引入 | 语法介绍 | UTS 语法支持(链接格式)

    博主: _LJaXi Or 東方幻想郷 专栏: uni-app | 小程序开发 开发工具: HBuilderX 传统vue项目开发,引用组件需要 导入 - 注册 - 使用 三个步骤,如下: Vue 3.x增加了 script setup 特性,将三步优化为两步,无需注册步骤,更为简洁: uni-app 的 easycom 机制,将组件引用进一步优化,开发

    2024年02月13日
    浏览(90)
  • 【React】‘React‘ must be in scope when using JSX react/react-in-jsx-scope

    React 报错: 意思是在使用 JSX 时,没有引入 React ,比如像这样: 在使用 import 引入时,没有引入 React 。所以在被 Eslint 的 \\\"plugin:react/recommended\\\" 检查时,就会报错。 于是很多人就选择引入的时候加上 React ,这样 这样确实不报错了,但是他们忽略了一个版本事实: 在 React@17

    2024年02月15日
    浏览(42)
  • jsx的语法规则?

    JSX(JavaScript XML)是一种在 JavaScript 中编写类似 XML 的语法扩展,常用于 React 应用程序中描述用户界面。下面是 JSX 的一些基本语法规则: 嵌套规则:JSX 元素可以相互嵌套,并且需要使用闭合标签。 表达式插值:通过将 JavaScript 表达式放置在大括号  {}  内来在 JSX 中插入动

    2024年01月23日
    浏览(37)
  • jsx语法

     JSX是一种JavaScript的语法扩展(eXtension),也在很多地方称之为JavaScript XML,因为看起就是一段XML语法;  它用于描述我们的UI界面,并且其完成可以和JavaScript融合在一起使用;  它不同于Vue中的模块语法,你不需要专门学习模块语法中的一些指令(比如v-for、v-if、v-el

    2024年02月15日
    浏览(36)
  • 【react从入门到精通】React JSX详解

    ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入:全栈弄潮儿的个人社区 📙 专栏地址:react从入门到精通 【分享几个国内免费可用的ChatGPT镜像】 【10几个类ChatGPT国内AI大模型】 【用《文心一言》1分钟写一篇博客简直yyds】 【用

    2024年02月05日
    浏览(50)
  • React笔记(二)JSX

    一、JSX JSX是javascript XML的简写,实际上是javascript的扩展,既有javascript的语法结构,又有XML的结构 1、JSX的规则要求 jsx必须要有一个根节点 如果不想产生无用的根标签,但是还要遵守JSX的语法的要求,可以使用如下两种方式 JSX必须要有一个根节点,而且编译之后在浏览器中不

    2024年02月11日
    浏览(42)
  • react之组件与JSX

    概述:React是一个用于构建用户界面(UI)的JavaScript库,用户界面由按钮,文本和图像等小单元内容构建而成。React帮助你把它们组合成可重用,可嵌套的组件。从web端网站到移动端应用,屏幕上的所有内容都可以被分解成组件。 定义组件 一直以来,创建网页时,Web 开发人员

    2024年04月25日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包