安装react的脚手架

1==>行 npx create-react-app myreactdemo01
解释一下: npx create-react-app 你的项目名称
npx create-react-app 是固定不变的
2==>然后执行回车
3==>cd myreactdemo01
4==>npm start

简单介绍一下npx

npm 从5.2版开始,增加了 npx 命令.
npx 想要解决的主要问题,就是调用项目内部安装的模块。
也就是说安装了node就有npx。

学习jsx

在学习jsx的时候,需要注意的点哈
React元素的属性名使用驼峰命名法(小驼峰)
特殊的属性名 class==>className; for==>Htmlfor
使用小括号()包裹jsx是为了避免js中自动插入分号的陷阱。

jsx的简单使用-使用变量

//index.js 文件 这个文件是src下的文件。
//我使用这个文件是为了方便练习React
react中使用变量调用方法是 { 变量 }
react中使用方法是 { 方法名() } import React from 'react'; //这个是react这个包,我们是需要的
import ReactDOM from 'react-dom'; //这个是react的虚拟dom
// jsx的书写
const name='我是变量'
const contHtml = (
<h2>
<p className='p-header'>开始学习React--class变成className </p>
<p className='p-cont'>开始使用变量 {name} </p>
</h2>
) // root在index.html中可以找到这个变量哈
ReactDOM.render(contHtml, document.getElementById('root'))

jsx中也可以去调用函数哈

//index.js 文件

import ReactDOM from 'react-dom'; //这个是react的虚拟dom
const isLoadFlag = true
const locadData = () => {
if (isLoadFlag) {
return <div>加载中loading...</div>
} else {
return <div>数据已经加载完了哈</div>
}
}
// jsx中也可以去调用函数哈
const contHtml = (
<div>
我在jsx去调用函数哈 {locadData() }
<p>这里面是jsx,因为可以返回jsx</p>
</div>
)
ReactDOM.render(contHtml, document.getElementById('root'))

优化上面的哈-jsx中三元运算的使用

import React from 'react'; //这个是react这个包,我们是需要的
import ReactDOM from 'react-dom'; //这个是react的虚拟dom
const isLoadFlag = true const locadData = () => {
return isLoadFlag ? ( <div>加载中loading...</div> ) : <div>数据已经加载完了哈</div>
}
// jsx中也可以去调用函数哈
const contHtml = (
<div>
我在jsx去调用函数哈 {locadData() }
<p>这里面是jsx,因为可以返回jsx</p>
</div>
)
ReactDOM.render(contHtml, document.getElementById('root'))

jsx的列表渲染类似 v-for

import React from 'react'; //这个是react这个包,我们是需要的
import ReactDOM from 'react-dom'; //这个是react的虚拟dom
const listArr = [
{ id: 1, name: '张三2' },
{ id: 2, name: '张三3' },
{ id: 3, name: '张三4' },
]
// jsx中也可以去调用函数哈
const contHtml = (
<ul>
{/* 给遍历的那个元素添加上key值。key最好是唯一值哈 跟vue是一样的哈 */}
{
listArr.map(item => <li key={item.id}> 姓名 {item.name}</li> )
}
</ul>
)
ReactDOM.render(contHtml, document.getElementById('root')) 需要注意的是:要避免使用索引值(index)作为key

jsx中样式的处理-使用行间样式

import React from 'react'; //这个是react这个包,我们是需要的
import ReactDOM from 'react-dom'; //这个是react的虚拟dom
// 使用行间样式
const contHtml = (
<h1 style={{ color:'red', background:'pink', height:'100px'}}>
我是内容
</h1>
// 第一个大括号表示的是jxs,第二个表示的是一个对象,以键值对的形式处理
)
ReactDOM.render(contHtml, document.getElementById('root'))

jsx中样式的处理【推荐使用 className 】

import React from 'react'; //这个是react这个包,我们是需要的
import ReactDOM from 'react-dom'; //这个是react的虚拟dom
// 引入这个文件对应的css,css中有myh1css样似的描述。推荐使用这一种
import './index.css'
// 使用行间样式
const contHtml = (
<h1 className='myh1css' id='h1Id'>
我是内容
</h1>
// 第一个大括号表示的是jxs,第二个表示的是一个对象,以键值对的形式处理
)
ReactDOM.render(contHtml, document.getElementById('root'))

动态新增新增class

<!-- 需求描述如果type==1,类名时css1;否者是css2 -->
<!-- 功能实现如下 --> import React from 'react'; //这个是react这个包,我们是需要的
import ReactDOM from 'react-dom'; //这个是react的虚拟dom
const listArr = [
{ type: 1, name: 'react',id:1 },
{type:2,name:'vue',id:3},
]
const contHtml = (
<ul>
{listArr.map(item =>
<li
key={item.id}
className={item.type==1 ? 'css1' : 'css2'}
>
{item.name}
</li>
)}
</ul>
)
ReactDOM.render(contHtml, document.getElementById('root'))

动态新增className,同时有默认样式

import React from 'react'; //这个是react这个包,我们是需要的
import ReactDOM from 'react-dom'; //这个是react的虚拟dom const listArr = [
{ type: 1, name: 'react',id:1 },
{type:2,name:'vue',id:3},
]
const name = '我是变量'
// 默认有default-css1,default-css2,同时动态添加其他
const contHtml = (
<ul>
{listArr.map(item => <li key={item.id} className={[
'default-css1',
'default-css2',
item.type == 1 ? 'css1' : 'css2'
]}> {item.name}</li>)}
</ul>
) // root在index.html中可以找到这个变量哈
ReactDOM.render(contHtml, document.getElementById('root'))

学习React中的jsx-保证你看的明明白白的更多相关文章

  1. 学习React从接受JSX开始

    详情参考官方JSX规范 虽然JSX是扩展到ECMAScript的类XML语法,但是它本身并没有定义任何语义.也就是说它本身不在ECMAScript标准范围之内.它也不会被引擎或者浏览器直接执行.通常会 ...

  2. react中的jsx详细理解

    这是官网上的一个简单的例子 const name = 'Josh Perez'; const element = <h1>Hello, {name}</h1>; ReactDO ...

  3. 在 React 中使用 JSX 的好处

    优点: 1.允许使用熟悉的语法来定义 HTML 元素树: 2.提供更加语义化且移动的标签: 3.程序结构更容易被直观化: 4.抽象了 React Element 的创建过程: 5.可以随时掌控 HTM ...

  4. 学习React中遇到的问题

    1.执行eject后,再次启动项目报错 情景:使用create-react-app搭建了项目,启动没有问题,然后执行 $ yarn eject 暴露出webpack配置文件等,再次 $ yarn st ...

  5. Vue3.2中的setup语法糖,保证你看的明明白白!

    vue3.2 到底更新了什么? 根据原文内容的更新的内容主要有以下 5 块: 1.SSR:服务端渲染优化.@vue/server-renderer包加了一个ES模块创建, 与Node.js解耦,使在非 ...

  6. vue下一代状态管理Pinia.js 保证你看的明明白白!

    1.pinia的简单介绍 Pinia最初是在2019年11月左右重新设计使用Composition API的 Vue 商店外观的实验. 从那时起,最初的原则相同,但 Pinia 适用于 Vue 2 和 ...

  7. 国庆总结:echarts自定义颜色主题,保证你看的明明白白

    为什么需要使用颜色主题 随着用户审美越来越高,不再是过去那样只注重功能. 所以对界面的颜色样式都具有一定的审美要求 此时颜色是否好看就非常重要了 因为人都是视觉动物 对界面的第一印象肯定都是颜色. 如 ...

  8. vue混入mixin的使用,保证你看的明明白白!

    场景描述 有些时候,我们发现有些组件部分功能代码是几乎是一样的. 这个时候,我们就可以将相同的逻辑代码抽离出来 此时我们的主角混入mixin就登场了 下面我们有a-test和b-test两个组件,点击 ...

  9. node使用node-xlsx实现excel的下载与导入,保证你看的明明白白

    需求简介 很多时候,我们都会有这样一个业务. 将列表中的数据导出为excel. 这样做的目的是为了方便查看,同时可以保存在本地归档. 还可以将导出的Excel后的数据进行加工. node-xlsx 的 ...

  10. react学习(一)--JSX简介

    由于在中国银联实习的项目要用到react,所以不得不硬着头皮把react学习一下.这是要往全栈发展吗0.0 正文: 一个最简单的React例子如下, ReactDOM.render( <h1&g ...

随机推荐

  1. 鸿蒙轻内核源码分析:Newlib C

    摘要:本文介绍了LiteOS-M内核Newlib C的实现,特别是文件系统和内存分配释放部分,最后介绍了Newlib钩子函数. 本文分享自华为云社区<鸿蒙轻内核M核源码分析系列二十 Newlib ...

  2. 再谈BOM和DOM(5):各个大流浪器DOM和BOM里面的那些坑—兼容性

    三大不冒泡事件 所有浏览器的focus/blur事件都不冒泡,万幸的是大部分浏览器支持focusin/focusout事件,不过可恶的firefox连这个都不支持. IE6.7.8下 submit事件 ...

  3. 字节跳动开源数据集成引擎 BitSail 的演进历程与能力解析

    导读 BitSail 是字节跳动开源数据集成引擎,支持多种异构数据源间的数据同步,并提供离线.实时.全量.增量场景下全域数据集成解决方案,目前支撑了字节内部和火山引擎多个客户的数据集成需求.经过字节跳 ...

  4. H-ui JQuery 给单选按纽赋值不生效

    H-ui JQuery 给单选按纽赋值不生效 $("#sex-1").attr('checked',true) 原因,iradio-blue 样式的原因 把下面代码注释掉就可以了 ...

  5. CompletableFuture 使用

    Future的局限性,它没法直接对多个任务进行链式.组合等处理,而CompletableFuture是对Future的扩展和增强.CompletableFuture实现了Future接口,并在此基础上 ...

  6. 用 Python 开发的 PDF 抽取Excel表格 2.0版

    前些天向大家介绍了我开发的从PDF抽取表格小工具的使用方法(️点击直达),有同学反馈说有一些问题: 一页PDF有多张表,只能抽取第一个 有些表格线条是透明的,无法抽取 一页一页处理太麻烦,不能一次性抽 ...

  7. 【Vue】表单数据双向绑定 vue生命周期 fetch和axios发送请求 Vue全局组件

    目录 昨日回顾 表单数据双向绑定(重要) checkbox单选 --- 布尔值 checkbox多选 --- 数组 radio单选 --- 字符串 给后端发送数据 购物车案例 全选按钮 商品添加删除 ...

  8. STM32CubeMX教程16 DAC - 输出3.3V内任意电压

    1.准备材料 开发板(正点原子stm32f407探索者开发板V2.4) STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) ST-LINK ...

  9. shell 里使用 sed awk

    1 在shell脚本里使用sed 需把''改为"" 2 在shell脚本里使用awk 正则里使用 变量加上单引 awk -F: '/^'$user_name'/{print $1, ...

  10. 4.0 《数据库系统概论》数据库安全性详解---(存取控制、DAC&MAC、视图机制、审计Audit....)

    前言 本篇文章学习书籍:<数据库系统概论>第5版 王珊 萨师煊编著 视频资源来自:数据库系统概论完整版(基础篇+高级篇+新技术篇) 由于 BitHachi 学长已经系统的整理过本书了,我在 ...