前端架构师egg+designpro开发内容管理系统实战
https://www.bilibili.com/video/BV1La411X74h 1+ 1 2
前端架构师
任务1:1.cms-api
www.zhufengpeixun.cn/architecture/html/30.cms-7-api.html#t63.2%20config/config.default.js
npm i egg-init -g 用cli
用模板....
https://gitee.com/wendZzoo/cms-api
8.锁
锁时计算机协调多个进程或线程并发访问某一资源的机制
8.1 锁的分类
从对数据库操作的类型分,分为读锁和写锁
读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响
写锁(排它锁):当前写操作没有完成前,它会阻断其他写锁和读锁从对数据操作的粒度分,分为
表锁行锁
8.2 表锁
表锁偏向 MyISAM 存储引擎,开销小,加锁快,锁定粒度大,发生锁冲突的概率最高,并发度最低
8.2.1 准备数据
数据枷锁
表级读锁
lock table users read;select*from users;select
*from role;
unlock tables;
任务2:2.cms-api
任务3:3.cms-api
任务4:1.umi
1.roadhog roadhog 是一个 cli 工具,提供 server,build 和 test 三个命令,分别用于本地调试和构建提供了特别易用的mock功能
命令行体验和 create-react-app 一致,配置略有不同,比如默认开启 css modules还提供了JSON 格式的配置方式.
roadhog
1.1 安装
$ npm i roadhog-g
1.UmiJS UmiJS 是一个类 Next.JS 的 react 开发框架。
他基于一个约定,即pages目录下的文件即路由,而文件则导出react组件然后打通从源码到产物的每个阶段,并配以完善的插件体系,让我们能把umi的产物部署到各种场景里.
任务5:2.dva
dva 阿里 类似redux
6.ΑΡΙ
app = dva(opts)创建应用,返回 dva 实例app.use(hooks)配置 hooks 或者注册插件app.model(mopel)注册 model app.router(({history,app})=> RouterConfig)注册路由表app.start(selector?)启动应用。selector可选61计粉哭
有state reduces effects-延时操作 调用接口 等待
cnpm install dva-cli-g
任务6:3.dva
任务7:4.dva
任务8:1.cms-front
任务9:2.cms-front
任务10:4.cms-front
任务11:4.cms-front
任务12:5.cms-front
任务13:6.cms-front
任务14:7.cms-front
任务15:1.cms-api-1
任务16:2.cms-api-2
任务17:1.roadhog+umi
任务18:2.umi
任务19:1.saga
1.redux-saga redux-saga 是一个redux 的中间件,而中间件的作用是为redux提供额外的功能.
在reducers中的所有操作都是同步的并且是纯粹的,即reducer都是纯函数,纯函数是指一个函数的返回结果只依赖于它的参数,并且在执行过程中不会对外部产生副作1用,即给它传什么,就吐出什么。
但是在实际的应用开发中,我们希望做一些异步的(如Ajax请求)且不纯粹的操作(如改变外部的状态),这些在函数式编程范式中被称为"副作用"。
redux-saga 就是用来处理上述副作用(异步任务)的一个中间件。它是一个接收事件,并可能触发新事件的过程管理者,为你的应用管理复杂的流程
2.redux-saga工作原理
sages采用Generator函数来yield Effects(包含指令的文本对象)
Generator 函数的作用是可以暂停执行,再次执行的时候从上次暂停的地方继续执行Effect 是一个简单的对象,该对象包含了一些给 middleware 解释执行的信息。
你可以通过使用effects API如fork,call,take,put,cancel等来创建Effect.
3.redux-saga分类
worker saga 做实际的工作,如调用API,进行异步请求,获取异步封装结果
watcher saga监听被dispatche9actions,当接受到action或者知道其被触发时,调用worker执行任务root saga立即启动saga的唯一入口
任务20:2.saga
任务21:3.saga
任务22:4.dva
任务23:5.dva_ant
任务24:1.cms-front-1
任务25:2.cms-front-2
任务26:3.cms-front-3
任务27:4.cms-front-4
任务28:5-cms-front-5
任务29:6-cms-front-6
任务30:7-cms-front-7