React.js教程:从JSX到Redux的全面解析

news/2024/11/6 15:50:06/

文章目录

    • 一、介绍
    • 二、react脚手架
    • 三、jsx语法和react组件
      • jsx的基本语法
      • jsx的行内样式
      • jsx的类名className
      • if条件渲染
      • map循环渲染
      • 创建组件方法
    • 四、可视区渲染 (React- virtualized)
    • 五、React-redux


一、介绍

  • javascript库,起源于Facebook的内部项目,类似于vue
  • 特点
    • 声明式
    • 组件化
  • 安装
    • npm i react react-dom -S
      • react包:是核心,提供创建元素,组件等功能
      • react-dom包:提供DOM相关功能

二、react脚手架

  • 初始化项目:npx create-react-app 项目名称
    • npx 不是 npm npx 去找到对应的脚手架安装执行 所以我们不需要先安装
  • 启动项目:npm start
  • 脚手架中使用react的步骤
    1. 导入react和react-dom两个包
      import React from 'react' 
      import ReactDom from 'react-dom'
      
    2. 创建元素
      // React.createElement('标签名', {属性名: 属性值}, 标签内容) 
      let element = React.createElement('h1', {id: 'tt'}, '春风十里不如你')
      
    3. 渲染到页面
      ReactDom.render(创建的元素, 页面上的dom元素) 
      ReactDom.render(element, document.getElementById('root'))
      

三、jsx语法和react组件

jsx的基本语法

import React form 'react'
import ReactDom from 'react-dom'
// {}可以写变量、算数、三元表达式 不能写for、if这些语句
let name = '呼呼'
let age = 18
let div = <div><h1>我是div里面的h1标签</h1><div>{name}</div><h2>{1 + 1}</h2><h3>{age >= 18 ? '已成年' : '未成年'}</h3>
</div>
console.log(name)
ReactDom.render(div, document.getElementById('root'))

jsx的行内样式

import React form 'react'
import ReactDom from 'react-dom'/*** 1.第一个 {} 代表的是js* 2.第二个 {} 代表的是对象* 3.style = {}*/let div = <div style={{ color: 'red', background: 'pink' }}>我是div标签</div>ReactDom.render(div, document.getElementById('root'))

jsx的类名className

import React form 'react'
import ReactDom from 'react-dom'
import './style/index.css'
let div = <div className='box'>我是一个小哈哈</div>
ReactDom.render(div, document.getElementById('root'))

if条件渲染

import React form 'react'
import ReactDom from 'react-dom'
// react中的if条件渲染:就是原生js的if直接判断
let isLoading = false
let div = ''
if (isLoading) {div = <div><h3>加载中...</h3></div>
} else {div = <div><h3>加载完成</h3></div>
}
ReactDom.render(div, document.getElementById('root'))

map循环渲染

import React form 'react'
import ReactDom from 'react-dom'let arr = [{ id: 1, name: '三国演义' },{ id: 2, name: '水浒传' },{ id: 3, name: '西游记' },{ id: 4, name: '红楼梦' }
]
let ul = <ul>{arr.map(item => <li key={item.id}>{item.name}</li>)}</ul>
ReactDom.render(ul, document.getElementById('root'))

创建组件方法

  1. 函数组件
    1.1 首字母必须大写
    1.2 必须return,如果不想渲染东西,就return null
    1.3 使用的时候直接写组件标签就可以
    import React form 'react'
    import ReactDom from 'react-dom'function Hender() {// 这里必须returnreturn <div>我是函数组件 <h1>创建组件</h1></div>
    }
    ReactDom.render(<Hender></Hender>, document.getElementById('root'))
    
  2. class类组件
    2.1 首字母必须大写
    2.2 class组件名 extends React.Component{}
    2.3 里面必须写render,render里面必须return
    import React form 'react'
    import ReactDom from 'react-dom'class Hender extends React.Component() {render() {return <div>class类组件 <h1>h3标签</h1></div>}
    }
    ReactDom.render(<Hender></Hender>, document.getElementById('root'))
    

四、可视区渲染 (React- virtualized)

  • 只渲染看见的几条和前后几条,不管数据有多少,性能很高
  • 原理:只渲染页面可视区域的列表项,非可视区域的数据完全不渲染 (预加载前面几项和后面几项),在滚动列表是动态更新列表项

五、React-redux

  • 概念
    • 在react-redux写的是数据,都是全局数据,所有组件都可以用
    • 是react里面的全局数据状态管理
  • react-redux与redux的关系
    • redux:全局数据管理,在vue、jq、react都可以用,比较繁琐
    • react-redux:专门在react使用,基于redux的封装,配套
  • 使用步骤
    1. 下载react-redux redux包:npm i react-redux redux -S
    2. index.js文件导入Provider、createStore
      import { Provider } from 'react-redux'
      import { createStore } from 'redux'
    3. 使用createStore创建全局数据
      3.1 createStore(reducer函数, 全局state数据对象)
    4. 使用Provider包裹App根组件并传入store

http://www.ppmy.cn/news/1544848.html

相关文章

【那些年踩过的坑-前端篇- Mac版本】Mac电脑如何升级node.js

Mac电脑如何升级node.js 一 、mac可以用node.js的多版本管理器n来升级和切换二、使用Homebrew 一 、mac可以用node.js的多版本管理器n来升级和切换 mac可以用node.js的多版本管理器n来升级和切换&#xff0c;命令如下&#xff1a; sudo npm cache clean -f //清除node.js的ca…

andrular输入框input监听值传递

效果图&#xff1a; step1: E:\projectgood\ajnine\untitled4\src\app\apple\apple.component.html <button mat-button (click)“openDialog()”>Open dialog step2: E:\projectgood\ajnine\untitled4\src\app\apple\apple.component.ts import {Component, inject}…

Perl 环境安装

Perl 环境安装 Perl 是一种广泛使用的高级、通用、解释型、动态编程语言。它最初由 Larry Wall 在 1987 年设计,现在由 Perl 5 和 Perl 6 两个主要版本组成。Perl 适合于多种编程任务,包括系统管理、Web 开发、网络编程、游戏开发等。在开始使用 Perl 进行编程之前,您需要在…

如何更新已经发布的 NPM 组件库

要更新已经发布的 NPM 组件库&#xff0c;可以按照以下步骤操作&#xff1a; 更新版本号&#xff1a; 每次发布新的版本&#xff0c;都需要更新 package.json 中的 version 字段。NPM 使用 语义化版本 规则&#xff0c;即格式为 major.minor.patch&#xff0c;例如 1.0.1。版本…

(八)JavaWeb后端开发——Tomcat

目录 1.Web服务器概念 2.tomcat 1.Web服务器概念 服务器&#xff1a;安装了服务器软件的计算机服务器软件&#xff1a;接收用户的请求&#xff0c;处理请求&#xff0c;做出响应web服务器软件&#xff1a;在web服务器软件中&#xff0c;可以部署web项目&#xff0c;让用户通…

摄像机实时接入分析平台LiteAIServer视频智能分析软件诊断噪声检测

在科技日新月异的今天&#xff0c;视频监控系统的应用日益广泛&#xff0c;从公共安全到家庭防护&#xff0c;从生产线管理到交通监控&#xff0c;视频监控已经成为现代社会不可或缺的一部分。然而&#xff0c;噪声问题一直是影响视频画面清晰度和可用性的关键因素。为了解决这…

【国产MCU系列】-GD32F4开发环境搭建(基于Embedded Builder)

GD32F4开发环境搭建(基于Embedded Builder) 文章目录 GD32F4开发环境搭建(基于Embedded Builder)1、认识GD32F470ZGT62、开发板准备3、工程创建3.1 EmbeddedBuilder下载及安装3.2 创建GD32F4工程4、配置OpenOCD CMSIS-DAP下载程序1、认识GD32F470ZGT6 GD32F4系列MCU采用Ar…

斯坦福医学部发布GPT润色本子教程

最近&#xff0c;斯坦福大学医学部在GitHub上发布了一份针对申请资源本子润色的详细指导&#xff0c;包括使用GPT和其他大型语言模型来提升学术写作质量的全面建议。本文将为大家梳理这些润色指令&#xff0c;帮助你更好地理解和利用AI工具来优化学术写作。 指令集合 1. 提升文…