落雁沙吹牛逼大王

的文章
  • mobx5.x升级到mobx6.x
    环境: mobx 6.x mobx-react 7.x 在最近的一个项目中,使用mobx作为状态管理。用法是按照5.x的用法来的,但是更新了值之后,组件并没有刷新。查了很多方案,都是用React.createContext来实现的,虽然官网有类似的用法,但是,如果是老项目,总不能全不都去改了吧?所以还是要在原来的基础上寻找解决方案。最后还是在官方文档上找到了相关的说明。 https://mobx.js.org/migrating-from-4-or-5.html https://michel.codes/blogs/mobx6 我们根据这两个文章的内容写个demo测试。 工程结构如下: sto...
    •  0
    •  0
    •  2020-10-26
  • nodejs 用es6写服务端代码
    我们在使用Node写服务端代码的时候,一般是用commonJS的写法写的,但是如果考虑到代码复用什么的,还是希望可以用es6的写法去写。但是目前node是不支持import等用法的,所以我们需要用Babel来做转义。 以koa为例: 首先,我们设计工程结构代码都在src文件夹下 src下写一个index.js import Koa from "koa" const app = new Koa(); app.use(async ctx => {     ctx.body = 'Hello World';   }); app.listen(3000); 配置.babelrc来处理es6的转义...
    •  0
    •  2
    •  2020-10-20
  • spring boot restful接口的版本控制
    在spring boot项目中,如果要进行restful接口的版本控制一般有以下几个方向: 基于path的版本控制 基于header的版本控制 在spring MVC下,url映射到哪个method是由RequestMappingHandlerMapping来控制的,那么我们也是通过 RequestMappingHandlerMapping来做版本控制的 1.path控制 首先写一个annocation @Target({ElementType.METHOD,ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @inter...
    •  1
    •  2
    •  2020-10-18
  • nextjs的路径和react-router-dom的混合使用
    我们在使用nextjs作为react服务端渲染的时候,一般情况下,只有使用nextjs的文件夹路径作为url地址就可以了。但是,如果有部分页面我们不想用服务端渲染,这部分页面可以使用单页应用来做。 那么问题来了,服务端渲染和单页应用怎么融合?首先,我们看理论上是否可行,单页应用,就是在一个服务端渲染的页面上,通过HashRoute来控制页面的展示,那么我们就用其中一个页面来做这个单页应用的载体好了。 1.首先我们以HashRoute来测试,按照正常的react-router-dom模式来写。 layout const UserLayout = ({route})=>{     return <...
    •  0
    •  0
    •  2020-10-15
  • fetch调用服务端处理返回null值的情况
    根据官方文档,我们都知道,fetch请求数据,返回的response要通过response.json()去获取返回的data,但是如果返回的是null就会报错。这个问题查了蛮久没有方案,其实我们都忽略了另外一个方法response.text()。其实思路很简单,如果返回是null,转json不行,我们转string 总没问题吧? 处理方法如下: fetch('/admin-api/orders/page?pageNum=1&pageSize=10').then(response=>{   return  response.text().then((resText)=>{     if(resT...
    •  0
    •  0
    •  2020-10-11
  • create-react-scripts工程支持antd的按需加载,less,css-modules
    在create-react-scripts创建的项目中,我们要使用antd组件库,由于antd是less的,而create-react-scripts默认的是支持saas,所以我们要在配置上做一些调整,使其支持ant按需加载,less,以及css-modules。 根据官网文档,我们可以使用@craco/craco来修改webpack的配置。 调整后的craco.config.js文件如下 const CracoAntDesignPlugin = require("craco-antd"); const CracoLessPlugin = require('craco-less'); mod...
    •  0
    •  0
    •  2020-10-11
  • spring MVC 下restful接口的返回值处理
    在当前的主流环境下,大部分项目都是基于restful的接口来开发的。那么对于接口的返回形式很多时候就会有各种方式,比如说,要不要在最外层包装一层?其实这个主要是根据项目的情况来处理,就我个人而言,我觉得内部业务是不需要包装的,但是按照restful的风格,要么没有返回值,如果有返回值一定是一个Object,不要返回一个string这种就可以了。然而,如果是对外的接口给第三方使用之类的,还是包装一层比较好,毕竟最外层的几个基础字段更便于理解。 1.直接返回数据,用httpStatus表示成功与否 我们要返回这么一结果 {   "title": "三国演义",   "content": "测试" ...
    •  0
    •  0
    •  2020-10-09
  • seata-XA模式
    1.什么是XA模式 XA是由X/Open组织提出的分布式事务的规范。 XA规范主要定义了(全局)事务管理器(TM)和(局 部)资源管理器(RM)之间的接口。主流的关系型 数据库产品都是实现了XA接口的。 XA接口是双向的系统接口,在事务管理器 (TM)以及一个或多个资源管理器(RM)之 间形成通信桥梁。 XA之所以需要引入事务管理器是因为,在分布 式系统中,从理论上讲两台机器理论上无法达 到一致的状态,需要引入一个单点进行协调。 由全局事务管理器管理和协调的事务,可以跨 越多个资源(如数据库或JMS队列)和进程。 全局事务管理器一般使用 XA 二阶段提交协议 与数据库进行交互。 2.seata...
    •  0
    •  0
    •  2020-09-28
  • seata-AT模式
    1.什么是AT模式 seata的AT模式是一个无侵入的分布式事务。 2.AT模式的工作原理 AT模式是基于一个全局的事务管理器来管理的。例如,在全局事务下,当我们存在A,B两个服务的时候,A和B的提交都会生成一个undo_log的记录,会记录下执行前和执行后的镜像,如果一段提交没有错误的话,则会进行二段提交,如果在全局事务中有异常抛出,则根据undo_log进行回滚。 3.全局事务的标记 在seata中,全局事务会有一个TX_ID来标记。这个主要体现在 io.seata.core.context.RootContext#bind() 。在分布式系统中不管分成多少个子系统,我们用请求生命周期的概...
    •  1
    •  0
    •  2020-09-28
  • 分布式事务
    1.事务的概念 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。 2.事务的特性 事务是必须满足4个条件(ACID):原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这...
    •  2
    •  1
    •  2020-09-28