锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

【React】基础知识要点

时间:2022-08-22 11:00:01 p119举升传感器

参照blibli中【尚硅谷React视频,链接

P5、jsx语法规则

P9.函数组件

只能传一下props,不能操作state、refs等

function HelloMessage(props) {     return 
Hello {props.name}
} ReactDOM.render( ,document.getElementById('example') );

P10、类相关知识

P11、类式组件

P14、绑定事件

P16、解决this指向问题

或者 changeWeather 改成 箭头函数 可以,不用bind了

P19.组件三大核心属性1:state总结

class Hello extends React.Component {     // constructor(props) {     //     super(props);     //     this.state = {     //         text: 'Hello world!',     //     };     // }      ///这种写法可以替换上述构造函数     state = {         text: 'Hello world!',     }     handleClick=(e)=> {         e.preventDefault();         console.log点击链接,this.state.text);         this.setState({text:我被修改了}     }     render() {         return (                      )     } }

P20.组件三大核心属性2:props

P21、批量传递props

展开运算符:

P22、对props进行限制

P23、props简写

P组件三大核心属性3:refs

string类型的ref已过时,不建议使用。

P28.回调函数模式ref

P29、回调ref调用次数

P30、createRef

P31、总结ref

P32、不要过度使用ref

P35.高级函数,函数柯里化

代码示例:以下saveFormData是高级函数

函数柯里化代码示例:

P36不同的柯里化写法

P38.生命周期(旧)

react版本在16.8.4

卸载组件的方法:

P40、forceUpdate 强制更新

P42.总结生命周期(旧)

P43.比较新旧生命周期

一句话:废弃3个,新增2个(static getDerivedStateFromProps、getSnapshotBeforeUpdate)。

过时的生命周期:(不常用)

注:但是在react在18版中,不建议使用前缀。

生命周期(新):

P新生命周期1:getDerivedStateFromProps

静态方法,使用概率极低。该方法适用于罕见的用例,即 state 值在任何时候都取决于 props。

P45-P新生命周期2:getSnapshotBeforeUpdate

P47.生命周期(新)总结:

P48、diffing算法

P49-P52、脚手架

P模块化风格

P54、vscode中react插件

输入“rcc类组件代码片段可以出现;输入rfc函数组件代码片段可以出现

P56-P63、TodoList

P64、TodoList总结

P65、请求接口 配置代理1

浏览器插件推荐安装-FeHelper ,它可以格式化后端返回的数据。

配置服务器代理:package.json文件中添加proxy:

 "proxy": "http://localhost:5000"

P66、配置代理2

配置多个服务器代理:

P67-P70、github搜索案例

P71.新闻订阅和发布 PubSub

代码示例:A组件将数据传输到B组件

B组件订阅信息:

A组件发布消息:

P73、github总结搜索案例

P77、路由(Link、Route)

P78.路由组件和一般组件

P80、NavLink与封装NavLink

获取标签体内容 this.props.children

P81、Switch提高效率

代码示例:

P解决多级路径刷新页面后样式丢失的问题

三种方法:

P83、严格匹配exact

P84、Redirect的使用

P85、嵌套路由

P86、路由的params参数 match.params

P87、路由的search参数 location.search,用querystring解析

querystring代码示例:

P88、路由的state参数 location.state,不体现在url中

P90、push与replace

push压栈(默认),replace替换

Login

P编程路由导航

代码示例:

P92、withRouter

withRouter 一般组件可以加工,使其具有独特的路由组件api

P93、BrowserRouter与HashRouter

P97、redux 简介 (集中状态管理)

P98、redux工作原理

P100、redux精简版

store.js文件:

reducer文件:

 组件中使用:

 或者在入口文件这样写:

 总结:

P101、redux完整版

 action.js文件代码如下:

 组件中使用:

P102、异步action

store.js:

 action.js:

P103、react官方出的react-redux

P105、react-redux的基本使用

App.js中给容器组件传递store:

容器组件中:

 ui组件中直接用this.props接收就行:

 总结:

P106、优化1:简写connect的第二个参数 mapDispatchToProps

改成对象形式,value值为action,react-redux自动帮忙分发。

P107、优化2:Provider的使用

在index.js中使用:

P108、优化3:整合ui组件和容器组件

 优化总结:

P111、合并reducers(用combineReducers)

在store.js中:

 在容器组件中需要改下connect的第一个参数:

P112、纯函数 

给数组开头添加一个数据,可以用下面的方式:

P113、redux开发者工具(需要事先编写代码再用)

在store.js编写代码之后,就可以再浏览器中使用开发者工具了

P116、setState的两种写法

P117、lazyLoad懒加载

P118、State Hook【useState】

 代码示例:主要用于函数组件

P119、Effect Hook【useEffect】

 代码示例:

P120、Ref Hook【useRef】

 代码示例:

P121、Fragment标签

作用:可以不用必须有一个真实的DOM根标签了。

代码示例:

import React, { Fragment } from 'react';
function App() {
  return (
    
     

123

) }

 或者直接一个空标签:

<>
  

123

P122、context【createContext】

 注意:在开发中一般不用context

P123、优化组件,使用PureComponent

P124、renderProps 类似vue中的插槽

 代码示例:

P125、错误边界

 代码示例:

##下面都是ReactRouter6新版本改变的东西------------

P127、ReactRouter6版本简述

在2021年6月成为默认版本

P128、一级路由  变成

原来的变成,Switch不是必写的,但现在Routes是必须写在外面的。

P129、重定向

只要组件被渲染,就会修改路径,切换视图。

P130、高亮

5版本的 activeClassName 不能用了。

P131、路由表 useRoutes() 

routes/index.js:

 App.js中:

P132、嵌套路由

当Route产生嵌套时,用渲染其对应的后续子路由。

P133、路由的params参数【useParams()、useMatch('/xx/xx')】

 useMatch:

P134、路由的search参数【useSearchParams()、useLocation()】

useLocation :

P135、路由的state参数【useLocation()】

P136、编程式路由导航【useNavigate()】

 

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章