redux
创建全局store
const initialState
function reducer(state, action) {
}
createStore(reducer)
要用的地方
store.getState()
要改的地方
store.dispatch({ type: })
redux-toolkit
创建全局store
configureStore({ reducer: {
}
})
分模块 const initialState
const xxxSlice = createSlice({ name: "", initialState, reducers: {
}
})
export default xxxSlice.reducer
export let { } = xxxSlice.actions
使用 useSelector
更新 useDispatch
视频13章业务逻辑总结回溯,14章学习
-
带Id进入Edit页面
-
发送Ajax请求 从服务端拿到数据 拿到的是单个问卷的所有信息
-
将数据保存到redux store中,分开保存
- componentsList一部分
- 问卷的基本信息一部分
-
画布从store中拿回数据,根据类型 type的配置渲染组件列表componentsList
-
工具栏的实现,复制粘贴,锁定……
-
如何绑定快捷键 使用ahooks的hook ……
每一个组件都有自己的配置信息
这是每一个问卷的类型
进入Edit页面 发送Ajax请求后端返回数据 这个数据就是那一个页面的所有信息
type PropsType = {
_id: number,
title: string,
isStar: boolean,
isPublished: boolean,
answerCount: number,
createAt: string
}
componentsList
这是每一个组件的props类型
export type QuestionInpurPropsType = {
title?: string,
placeholder?: string
}
export type QuestionTitlePropsType = {
text?: string
level?: 1 | 2 | 3 | 4 | 5
isCenter?: boolean
}
统一组件的props
export type ComponentPropsType =
QuestionInputPropsType &
QuestionTitlePropsType &
QuestionParagraphPropsType &
QuestionInfoPropsType &
QuestionTextareaPropsType &
QuestionRadioPropsType &
QuestionCheckboxPropsType
单个组件的类型
export type ComponentInfoType = {
fe_id: string,
type: string,
title: string,
props: ComponentPropsType
}
这是组件列表的类型
componentsList的类型是下面这个
export type ComponentsStateType = {
componentList: Array<ComponentInfoType>
}
componentList: Array
撤销重做功能
redux-undo
present
past 栈
future 栈
- 包裹reducer
浏览器复制
document.execCommand(“copy”)
二维码
qrcode.react
15、16、17(部分)章学习 一些业务功能实现:
- 拖拽排序用到的库dnd-kit
- 浏览器复制的API:document.execCommand(“copy”)
- 二维码生成用到的库qrcode.react
- 撤销重做用到的库redux-undo
- 数据统计可视化用到的库recharts
nextjs实现服务端渲染,与项目C端的制作
- SSR、SSG、CSR一些基本知识的回顾与使用场景
- 使用nextjs开发,这部分以前使用过难度不大,多数是对API的复习
这几章节总体业务逻辑大致明白,但是没有直接敲代码,以及对第三方库的使用,没有上手并不一定能熟练实现