项目Vue转成React hooks可能存在的问题--急需类似setState回调
项目Vue转成React hooks可能存在的问题--急需类似setState回调
假设在Vue中有如下三个方法,并且初始时this.a = ‘a’; this.b = ‘b’;
funA() {
this.a = '1221';
this.funB();
return this.funC();
},
funB() {
this.a = this.a + '--';
},
funC() {
return this.a + this.b;
}
不要纠结于上面具体的写法,只是作为demo演示现有项目中很可能有类似这样的写法。
上面在调用funA后在Vue里面可能会得到1221-—b,那么在React中,应该是会返回ab吧,因为setState的值是异步更新的,在class组件写法里面我们可以用回调来保证自己拿到的state的值是设置为更新后的结果,在hooks中呢,并没有此回调。
问题来了,要将上面的vue代码用React Hooks怎么实现,我们依然期望是像在vue中一样funA()
稳定的返回 1221-—b
迁移技术栈的过程中,将vue的方法一对一改写成react方法肯定是业务风险最小的做法,一般情况下这样迁移没啥难度,还不会遗漏原有功能,但是我举例的这种场景vue中肯定有,需要怎么改成react hooks的写法实现类似的功能呢?
- 分类:
- Web前端
相关文章
Vue同一路由跳转页面不刷新解决方案及注意事项之二
之前写过一个 《Vue同一路由跳转页面不刷新解决方案及注意事项》 ,在这篇文章里面鞋到了怎么解决这个问题,具体内容可以点击查看,这里简单说一下,就是利用将时间戳传给路由的query,也就导致 $ro 阅读更多…
怎么调试Webpack+React项目,报错basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")怎么办
今天在WebStorm上Windows上准备调试一个React项目,就出现了这样的报错。 Node Parameters里面写的是webpack-dev-server的执行文件 .\node_mod 阅读更多…
命令式组件Message、Dialog的主流写法分析
这里还是以element-ui为例,那我们就看看里面的Message。 它的dom结构什么的就写在node-modules/element-ui/packages/notification/src/ 阅读更多…
vue实现自定义组件的v-model双向数据绑定
一般来说我们用v-model是在input中 常见用法如下 <input type="text" v-model="username"> 用户名:{{username}} 其 阅读更多…
vue内置组件keep-alive源码解析
很简单,我们直接看vue的源码即可。 keep-alive 组件支持三个属性。 props: { include: patternTypes, exclude: patter 阅读更多…
改造富文本编辑器wangEditor成react组件
我们知道wangEditor常用的功能是editor实例的 txt.html() 和 txt.text() 方法,尤其是 txt.html() 方法,这是一个类似与jQuery常用的那种get和se 阅读更多…