You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Warning: Prop `className` did not match. Server: "PrivateSwitchBase-input-8 MuiSwitch-input" Client: "PrivateSwitchBase-input-4 MuiSwitch-input"
in input (created by ForwardRef(SwitchBase))
in span (created by ForwardRef(IconButton))
in span (created by ForwardRef(ButtonBase))
in ForwardRef(ButtonBase) (created by WithStyles(ForwardRef(ButtonBase)))
in WithStyles(ForwardRef(ButtonBase)) (created by ForwardRef(IconButton))
in ForwardRef(IconButton) (created by WithStyles(ForwardRef(IconButton)))
in WithStyles(ForwardRef(IconButton)) (created by ForwardRef(SwitchBase))
in ForwardRef(SwitchBase) (created by WithStyles(ForwardRef(SwitchBase)))
in WithStyles(ForwardRef(SwitchBase)) (created by ForwardRef(Switch))
in span (created by ForwardRef(Switch))
in ForwardRef(Switch) (created by WithStyles(ForwardRef(Switch)))
in WithStyles(ForwardRef(Switch)) (at pages/index.tsx:57)
in div (created by ForwardRef(Paper))
in ForwardRef(Paper) (created by WithStyles(ForwardRef(Paper)))
in WithStyles(ForwardRef(Paper)) (created by ForwardRef(Card))
in ForwardRef(Card) (created by WithStyles(ForwardRef(Card)))
in WithStyles(ForwardRef(Card)) (at pages/index.tsx:54)
in div (at pages/index.tsx:53)
in index (at _app.tsx:31)
in ThemeProvider (at _app.tsx:28)
in MyApp
in ErrorBoundary (created by ReactDevOverlay)
in ReactDevOverlay (created by Container)
in Container (created by AppContainer)
in AppContainer
in Root
functionArticleList({ children }: InferProps<typeofArticleList.propTypes>){return<divclassName="list">{children}</div>;}ArticleList.propTypes={children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node),PropTypes.node,]).isRequired,};
2020 基于react生态的一次博客实战探索
暂且先准备这样,后续的接口会慢慢来
使用的技术
动态调整
一切都是动态调整的 也是一次我们共同学习的过程
代码
放在github上
开始
blog-fe-cms/
持续的来写
环境变量 十分重要
开发场景下 是需要 读 开发的一些常量配置
生产 又是不同的一套配置
环境变量 env
选择一个什么样的UI框架呢
我们知道, CRA 功能是什么呢 后台管理系统数据的处理
react 生态中 UI
社区里优秀的方案
并不想去给大家直接说怎么做
思考?
部署
CSS 预编译器 less
我们是用 hooks语法 新特性
重点是什么呢?
Hooks
useState
setState
在
react
的 jsx 中的点击事件 是 看起来像所谓异步浅拷贝 深浅拷贝 this 指向 绑定this 的方式又有什么呢 case
关于像 对象 或者是 数组 基本 aPI 实际的而开发 中 深浅拷贝 防抖节流 都会lu
setState
只在合成事件和钩子函数中是“异步”的,在原生事件和setTimeout
中都是同步的setState
的“异步”并不是说内部由异步代码实现,其实本身执行的过程和代码都是同步的,只是合成事件和钩子函数的调用顺序在更新之前,导致在合成事件和钩子函数中没法立马拿到更新后的值,形成了所谓的“异步”,当然可以通过第二个参数setState(partialState, callback)
中的callback
拿到更新后的结果。setState
的批量更新优化也是建立在“异步”(合成事件、钩子函数)之上的,在原生事件和setTimeout 中不会批量更新,在“异步”中如果对同一个值进行多次setState
,setState
的批量更新策略会对其进行覆盖,取最后一次的执行,如果是同时setState
多个不同的值,在更新时会对其进行合并批量更新。useEffect
都有什么生命周期呢 ?? 面试
粒子登录背景
https://github.com/matteobruni/tsparticles
更新包依赖
package.json
文件所在的目录中执行npm update
命令。npm outdated
命令。不应该有任何输出。less 模块化 css
camsong/blog#5
https://jsonplaceholder.typicode.com/
api 请求 数据请求 非常重要一部分
面试
像 vue 和 react 都有非常常见的一个问题 就是 key
TypeScript 写 React
一方面呢是 继续 走hooks
一方面 中心 是在 ts
接着 写一些 工具呀 或者是通用的方法
还会涉及 面试题
前言
我们写
react
项目的打开方式有多种,那本篇我们将站在TypeScript
的角度逆向分析,我们该怎么去优雅的用ts 描述React
,想必你一定会有所收获版本
开篇我们是需要告知我们的
package.json
中一些核心依赖的版本(这在不同的版本也许是不同的效果)思路
整体思路是依着
TypeScript
的基础上 然后构建一个React
应用,这里参考 ts 以及 webpack 的 官方官方官方文档准备开始
为了节约大家的时间,首先在阅读下方的文章之前需要 打开几个网站
然后你需要自己跟着 ts 的官网描述搭建一个
webpack
+TypeScript
+React.js
的初始化项目,也许https://www.typescriptlang.org/docs/handbook/react-&-webpack.html 能帮到你,简陋的tsconfig.json
文件大致是这样的。不得不提的是webpack-cli
npx webpack -w
来监听index.html
文件的修改文件的导入方式
这里我们可以不使用之前的方式,如下
组件 Components
无状态组件(函数式)
在
js
环境下,一个简单的Button
组件,这就需要我们对其进行描述,
还记不记得,在本文的开篇我们一起说了,一些依赖包,那么
@types/react
中就替我们声明了一些优雅的描述也就是说我们可以通过
import React, { SFC} from "react";
其中SFC
以及有我们的传入的组件
(这里指 children)或者是这样的,你也可以看下下面的代码(这里我们讨论下最常见的组件属性传值)
我们接着看
有状态组件(calss 类)
既然是有状态的组件,或者一个开始,我们会想到
计数器
时钟
,因为案例虽小,但是足以说明我们的问题一个计数器(此处如此美观代码参见https://juejin.im/post/5b07caf16fb9a07aa83f2977)
一个简单的时钟,用来显示时间
构造函数
默认属性 defaultProps
子组件
事件
事件是关键
限制性事件处理
可以使用泛型
类型校验
重心是放在处理属性上
hooks 用法
useState & useEffect
useContext
useRef
useMemo
useCallback
useReducer
Render props and child render props
Context
The text was updated successfully, but these errors were encountered: