React全家桶(一)

news2024/11/16 11:35:11

课程内容

1、React基础

2、React Hooks

3、React路由

4、React Redux

5、组件库

6、Immutable

7、Mobx

8、React+TS

9、单元测试

10、dva+umi


一、React介绍

1、React起源与发展

在这里插入图片描述

2、React与传统MVC的关系

在这里插入图片描述

3、React的特性

在这里插入图片描述

4、虚拟DOM

在这里插入图片描述
在这里插入图片描述

二、create-react-app

1、全局安装脚手架并创建第一个react项目

在这里插入图片描述

2、临时安装脚手架并创建第一个react项目

在这里插入图片描述

3、常见问题

在这里插入图片描述

三、编写第一个react应用程序

在这里插入图片描述

四、JSX语法与组件

1、JSX语法(js+xml)

在这里插入图片描述

2、Class组件

在这里插入图片描述

3、函数式组件

function App(){
    return(
        <div>
            hello functional Component
        </div>
    )
}

/*
    16.8之前 无状态组件
    16.8之后 react hooks有状态了
*/
export default App

4、组件嵌套

import React, { Component } from 'react'

class Navbar extends Component{
    render(){
        return(
            <div> Navbar </div>
        )
    }
}

function Swiper(){
    return <div> Swiper </div>
}

const Tabbar = ()=> <div> Tabbar </div>

export default class App extends Component {
  render() {
    return (
      <div>
        <Navbar/>
        <Swiper/>
        <Tabbar/>
      </div>
    )
  }
}

5、组件的样式

在这里插入图片描述

import React, { Component } from 'react'
import './css/01-index.css'

export default class App extends Component {
  render() {
    var myname = "kerwin"
    var obj = {
        background:'red'
    }
    return (
      <div>
        {10 + 20 } - {myname}

        {10 > 20? 'aaa':'bbb'}

        <div style={obj}>1111111111</div>
        <div style={{background:'yellow'}}>2222222222</div>
        <div className='active'>3333333333</div>
        <label htmlFor='userName'>用户名:</label>
        <input type="text" id="userName"/>
      </div>
    )
  }
}

五、事件处理

1、绑定事件

import React, { Component } from 'react'

export default class root extends Component {
  render() {
    return (
      <div>
        <input />
        <button onClick={()=>{
            console.log("click");
        }}>add1</button>
        <button onClick={this.handleClick2}>add2</button>
        <button onClick={this.handleClick3}>add3</button>
        <button onClick={this.handleClick4}>add4</button>
      </div>
    )
  }

  handleClick2(){
    console.log("click2");
  }

  handleClick3 = ()=>{
    console.log("click3");
  }
  handleClick4 = ()=>{
    console.log("click4");
  }
}

import React, { Component } from 'react'

export default class root extends Component {

  a = 100

  render() {
    return (
      <div>
        <input />
        <button onClick={()=>{
            console.log("click");
            
        }}>add1</button>
        <button onClick={this.handleClick2.bind(this)}>add2</button>
        <button onClick={this.handleClick3}>add3</button>
        <button onClick={()=>this.handleClick4("比较推荐的使用方式,可以传参")}>add4</button>
      </div>
    )
  }

  handleClick2(){
    console.log("click2",this.a);
  }

  handleClick3 = ()=>{
    console.log("click3");
  }
  handleClick4 = ()=>{
    console.log("click4");
  }
}

2、call、apply、bind

/*
call,改变this指向,自动执行函数
apply,改变this指向,自动执行函数
bind,改变this指向,手动执行函数
*/

var obj1 = {
  name:"obj1",
  getName(){
    console.log(this.name);
  }
}

var obj2 = {
  name:"obj2",
  getName(){
    console.log(this.name);
  }
}

obj1.getName.call(obj2)
obj1.getName.apply(obj2)
obj1.getName.bind(obj2)
console.log("----------------------")
obj1.getName.bind(obj2)()

3、react事件绑定的位置(面试喜欢问)

/*
	React并不会真正的绑定事件到每一个具体的标签元素上,而是采用事件代理的模式
*/
handleClick3 = (evt)=>{
    console.log("click3",evt.target);
  }

6、ref

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/399321.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数学小课堂:数学难题的意义(善用工具和跳出圈外)

文章目录 引言I 几何学中的古典难题(几何作图题)1.1 伽罗瓦1.2 伽罗瓦理论II 数学难题的启发2.1 跳出圈外2.2 工具的作用引言 毕达哥拉斯定理做保障:任何自然数的平方根都可以用圆规和直尺作出来 高斯用直尺和圆规作图解决正十七边形画法的问题,正十七边形的边长计算出来…

如何利用海外主机服务提高网站速度?

网站速度是任何在线业务成功的关键。快速的网站速度可以让用户更快地访问您的网站&#xff0c;增加页面浏览量。对于拥有全球用户的网站而言&#xff0c;选择一个海外主机服务商是提高网站速度的有效方法之一。下面是一些利用海外主机服务(如美国主机、香港主机)提高网站速度的…

Job System

01-C&#xff03;Job System概述官方文档 Unity C&#xff03; Job System允许用户编写与Unity其余部分良好交互的多线程代码&#xff0c;并使编写正确的代码变得更加容易。编写多线程代码可以提供高性能的好处。其中包括显着提高帧速率和延长移动设备的电池寿命。C&#xff03…

iOS开发-bugly符号表自动上传发布自动化shell

这里介绍的是通过build得到的app文件和dSYM文件来打包分发和符号表上传。 通过Archive方式打包和获得符号表的方式以后再说。 一&#xff1a;bugly工具jar包准备 bugly符号表工具下载地址&#xff1a;(下载完成后放入项目目录下&#xff0c;如不想加入git可通过gitIgnore忽略…

doPost的实际使用

目录 前言 一、doPost是什么&#xff1f; 二、使用步骤 1.doPost的请求方法 2.需要引入依赖 总结 前言 本章主要记录一下doPost的请求公用方法的使用。 一、doPost是什么&#xff1f; 它其实就是一个http的post请求方式。 二、使用步骤 1.doPost的请求方法 当我们系…

使用Endnote自定义参考文献格式

使用Endnote自定义参考文献格式 使用Endnote插入参考文献&#xff0c;若要设置期刊指定格式或自己想要的参考格式&#xff0c;使用EndNote自定义方法&#xff0c;步骤如下。 注&#xff1a;有的期刊会给出EndNote的格式文件&#xff0c;那样直接导入就行。 文章目录使用Endnot…

Python+Yolov8目标识别特征检测

Yolov8目标识别特征检测如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01;前言这篇博客针对<<Yolov8目标识别特征检测>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习与应用推荐…

毕业设计常用模块之温湿度模块DHT11模块使用

DHT11是一款可以测量温度数据和湿度数据的传感器 产品特点 暖通空调、除湿器、农业、冷链仓储、测试及检测设备、消费品、汽车、自动控制、数据记录器、气 象站、家电、湿度调节器、医疗、其他相关湿度检测控制 外形尺寸 第3管脚&#xff1a;NC 是没有用的 典型电路 通信方式…

表格中的table-layout属性讲解

表格中的table-layout属性讲解 定义和用法 tableLayout 属性用来显示表格单元格、行、列的算法规则。 table-layout有三个属性值&#xff1a;auto、fixed、inherit。 fixed&#xff1a;固定表格布局 固定表格布局与自动表格布局相比&#xff0c;允许浏览器更快地对表格进行布…

excel 一对多数据查询公式 经典用法

所谓一对多&#xff0c;就是符合某个指定条件的有多个结果&#xff0c;要把这些结果都提取出来。 下面咱们就说说一对多查询的典型用法&#xff0c;先看数据源&#xff1a; A~D列是一些员工信息&#xff0c;要根据F2单元格指定的学历&#xff0c;提取出所有“本科”的人员姓名…

“一网统管”视频融合平台EasyCVR增加播放限制功能,支持全局及自定义设置视频播放时长

EasyCVR平台可在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等。平台可支持多协议、多类型的设备接入&#xff0c;包括国标GB28181、RTMP、RTSP/Onvif、海康SDK、大华SDK…

网络 | 网络层讲解 | IP协议 | 分片处理与网段划分

文章目录前言IP报文格式分片处理分片对传输层的影响网段划分路由转发中的路由表前言 tcp作为传输层的典型协议&#xff0c;保证了报文传输的可靠性&#xff0c;使每份报文完整的传输。在传输层之下的网络层解决的是传输能力的问题&#xff0c;它使得数据可以发送到对方主机&am…

Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流

场景 Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流&#xff1a; Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流_win nginx-rtmp最新版_霸道流氓气质的博客-CSDN博客 Vue中使用vue-video-player和videojs-flash插件实现播放rtmp视频文件流&…

类型转换(C++)

文章目录1. 为什么需要类型转换2. C语言的类型转换2.1 隐式类型转换2.2 显式类型转换2.3 特点3. C的类型转换3.1 static_cast3.2 reinterpret_cat3.3 const_cast3.4 dynamic_cast转型向下转型的安全问题3.5 explicit4. RTTI5. 常见题目1. 为什么需要类型转换 类型转换是将一个…

数据库-基础篇-8-事务

事务简介&#xff1a;事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求&#xff0c;即这些操作要么同时成功要么同时失败。 默认MySQL的事务是自动提交的&#xff0c;也就是说&#xff0c…

S3C2440移植Linux4.19.275内核以及过程中遇到的问题

目录 1 问题一&#xff1a;内核移植时MTD分区问题 2 问题二&#xff1a;uboot的MTDPARTS_DEFAULT定义的MTD分区&#xff0c;bootargs中的文件系统分区&#xff0c;内核的mtd_partition smdk_default_nand_part定义的分区&#xff0c;三者要对应起来 3 问题三&#xff1a;ubo…

kafka:linux 安装 kafka集群

kafka运行依赖于 jdk、zookeeper&#xff0c;kafka可视化工具选择kafka-eagle。所以要装的组件有&#xff1a;jdk、zookeeper、kafka、kafka-eagle一、安装jdk下载linux版本的jdk包&#xff0c;比如&#xff1a;jdk-8u192-linux-x64.tar.gz。将其复制到 /opt 目录下并解压&…

设计模式(十八)----行为型模式之策略模式

1、概述 先看下面的图片&#xff0c;我们去旅游选择出行模式有很多种&#xff0c;可以骑自行车、可以坐汽车、可以坐火车、可以坐飞机。 作为一个程序猿&#xff0c;开发需要选择一款开发工具&#xff0c;当然可以进行代码开发的工具有很多&#xff0c;可以选择Idea进行开发&a…

第十届省赛——7外卖店优先级

题目&#xff1a;“饱了么”外卖系统中维护着N 家外卖店&#xff0c;编号1~N。每家外卖店都有一个优先级&#xff0c;初始时(0 时刻) 优先级都为0。每经过1 个时间单位&#xff0c;如果外卖店没有订单&#xff0c;则优先级会减少1&#xff0c;最低减到0&#xff1b;而如果外卖店…

New Bing的详细申请步骤与实际功能测试效果展示

文章目录前言申请方式申请出错解决方案测试总结前言 微软表示&#xff0c;new bing正在使用对话式人工智能来创造一种新的浏览网络的方式。用户将能够像ChatGPT那样与Bing聊天&#xff0c;用自然语言提出问题和接受答案。 同时&#xff0c;微软宣布了其搜索引擎Bing的新版本&a…