前端:Vue和React的优点分别是什么?两者的最核心差异对比是什么?
个中,它暴漏给开拓者的变乱不是原闹变乱,是 React 包装过合成变乱,而且很是重要的一点是,合成变乱是池化的。也就是说差异的变乱,也许会共享一个合成变乱工具。其它一个细节是,React 对全部变乱都举办了署理,将全部变乱都绑定 document 上。请读者细心领会下面的代码: ![]() ![]() ![]() 你汇报我他们的输出值好欠好? 2.React 中变乱处理赏罚函数中的 this 默认不指向组件实例。 3.Vue 变乱体系. Vue不多讲,各人看图: ![]() 虽然 Vue 变乱处理赏罚函数中的 this 默认指向组件实例。连源码都写的那么“清楚易懂” ![]() 简朴说一下我小我私人的观点,从变乱 API 上我们就能看出前端框架在计划的一个差异思绪: React 计划是改变开拓者,提供强盛而伟大的机制,开拓者凭证我的来;Vue 是顺应开拓者,闪开拓者怎么爽怎么来。 第三点 预编译优化题目。 Vue3.0 提出的新闻团结的 DOM diff 头脑,我小我私人以为是 Vue 近几年在“创新”上的一个很好浮现。之以是可以或许做到新闻团结的 DOM diff,可能把这个题目放的更大:之以是可以或许做到预编译优化,是由于 Vue core 可以静态说明 template,在理会模版时,整个 parse 的进程是操作正则表达式次序理会模板,当理会到开始标签、闭合标签、文本的时辰城市别离执行对应的回调函数,来到达结构 AST 树的目标。 ![]() ![]() 我体谅的是:React 可否像 Vue 那样举办预编译优化?? Vue 必要做数据双向绑定,必要举办数据拦截或署理,那它就必要在预编译阶段静态说明模版,说明出视图依靠了哪些数据,举办相应式处理赏罚。而 React 就是局部从头渲染,React 拿到的可能嗣魅掌管的,所认真的就是一堆递归 React.createElement 的执行挪用,它无法从模版层面举办静态说明。 因此 React JSX 太过的机动性导致运行时可以用于优化的信息不敷。 可是,在 React 框架之外,我们作为开拓者照旧可以通过工程化本领到达相同的目标,由于我们可以或许打仗到 JSX 编译成 React.createElement 的整个进程。开拓者在项目中开拓 babel 插件,实现 JSX 编译成 React.createElement,那么优化本领就是是从编写 babel 插件开始: ![]() 虽然 React 并不是没故意识到这个题目,他们在起劲的同 prepack 相助。力争补充构建优化的天赋不敷。 Prepack 同样是 FaceBook 团队的作品。它让你编写平凡的 JavaScript 代码,它在构建阶段就试图相识代码将做什么,然后天生等价的代码,镌汰了运行时的计较劲,就相等于 JavaScript 的部门求值器。 我就用 Prepack 团结 React 尝了个鲜: ![]() 比拟: ![]() 这不正是 React 求之不得的吗? 其它一个 React 的偏向就是 fiber 时刻分片了, 尤雨溪说过:“React 是危险已经造成,无法自身在预编译阶段做到更多,时刻分片这样的优化只是在补充危险”。着实作为 React 的粉丝,这里吹了这么久 Vue,我颁发一下我的设法:这反倒算是 React 多管齐下的一个做法。最后,上一个借助 Babel plugin AST 实现一个相同预编译优化:remove inline functions 的小例子。 ![]() 预编译后: ![]()
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |