学习React中的jsx-保证你看的明明白白

简介: 学习React中的jsx-保证你看的明明白白

安装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
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'))


1425695-20220331220554084-2067063630.png

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'))


1425695-20220331220238835-335702813.png

优化上面的哈-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


1425695-20220331215731885-2135426013.png

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'))


1425695-20220331215847252-380473754.png

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'))


1425695-20220331220059758-306771449.png

相关文章
|
2月前
|
前端开发 JavaScript
React学习之——条件渲染
【10月更文挑战第16天】React 中没有像Vue中v-if这种指令。React 中的条件渲染和 JavaScript 中的一样,使用 JavaScript 运算符 if 或者条件运算符去创建元素来表现当前的状态,然后让 React 根据它们来更新 UI。
|
3月前
|
前端开发 JavaScript
学习react基础(3)_setState、state、jsx、使用ref的几种形式
本文探讨了React中this.setState和this.state的区别,以及React的核心概念,包括核心库的使用、JSX语法、类与函数组件的区别、事件处理和ref的使用。
91 3
学习react基础(3)_setState、state、jsx、使用ref的几种形式
|
1月前
|
JavaScript 前端开发 容器
React零基础入门02--JSX语法基础
React零基础入门02--JSX语法基础
React零基础入门02--JSX语法基础
|
1月前
|
XML 前端开发 JavaScript
react之了解jsx
react之了解jsx
|
1月前
|
前端开发 JavaScript 安全
学习如何为 React 组件编写测试:
学习如何为 React 组件编写测试:
41 2
|
2月前
|
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` 属性。
|
2月前
|
资源调度 前端开发 JavaScript
React进阶学习
React进阶学习
17 1
|
1月前
|
存储 前端开发 JavaScript
react之jsx编译原理
react之jsx编译原理
|
2月前
|
XML 前端开发 JavaScript
React JSX
10月更文挑战第7天
18 2
|
2月前
|
JSON 前端开发 JavaScript
React 进阶阶段学习计划
React 进阶阶段学习计划