加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

前端:Vue和React的优点分别是什么?两者的最核心差异对比是什么?

发布时间:2019-07-18 01:32:05 所属栏目:建站 来源:代码开发
导读:Vue template 比拟 JSX 我以为这只是「办理统一个题目的差异实现思绪」,完全可以由开拓者的小我私人偏好来抉择。退一步讲,Vue 中也不是不行以行使 JSX;同样,JSX 也不是无法实现 Vue template 的特征,好比模版指令,我们完全可以从工程化的角度实现: 虽然

个中,它暴漏给开拓者的变乱不是原闹变乱,是 React 包装过合成变乱,而且很是重要的一点是,合成变乱是池化的。也就是说差异的变乱,也许会共享一个合成变乱工具。其它一个细节是,React 对全部变乱都举办了署理,将全部变乱都绑定 document 上。请读者细心领会下面的代码:

前端:Vue和React的利益别离是什么?两者的最焦点差别比拟是什么?
前端:Vue和React的利益别离是什么?两者的最焦点差别比拟是什么?
前端:Vue和React的利益别离是什么?两者的最焦点差别比拟是什么?

你汇报我他们的输出值好欠好?

2.React 中变乱处理赏罚函数中的 this 默认不指向组件实例。

3.Vue 变乱体系.

Vue不多讲,各人看图:

前端:Vue和React的利益别离是什么?两者的最焦点差别比拟是什么?

虽然 Vue 变乱处理赏罚函数中的 this 默认指向组件实例。连源码都写的那么“清楚易懂”

前端:Vue和React的利益别离是什么?两者的最焦点差别比拟是什么?

简朴说一下我小我私人的观点,从变乱 API 上我们就能看出前端框架在计划的一个差异思绪: React 计划是改变开拓者,提供强盛而伟大的机制,开拓者凭证我的来;Vue 是顺应开拓者,闪开拓者怎么爽怎么来。

第三点

预编译优化题目。

Vue3.0 提出的新闻团结的 DOM diff 头脑,我小我私人以为是 Vue 近几年在“创新”上的一个很好浮现。之以是可以或许做到新闻团结的 DOM diff,可能把这个题目放的更大:之以是可以或许做到预编译优化,是由于 Vue core 可以静态说明 template,在理会模版时,整个 parse 的进程是操作正则表达式次序理会模板,当理会到开始标签、闭合标签、文本的时辰城市别离执行对应的回调函数,来到达结构 AST 树的目标。

前端:Vue和React的利益别离是什么?两者的最焦点差别比拟是什么?
前端:Vue和React的利益别离是什么?两者的最焦点差别比拟是什么?

我体谅的是:React 可否像 Vue 那样举办预编译优化??

Vue 必要做数据双向绑定,必要举办数据拦截或署理,那它就必要在预编译阶段静态说明模版,说明出视图依靠了哪些数据,举办相应式处理赏罚。而 React 就是局部从头渲染,React 拿到的可能嗣魅掌管的,所认真的就是一堆递归 React.createElement 的执行挪用,它无法从模版层面举办静态说明。

因此 React JSX 太过的机动性导致运行时可以用于优化的信息不敷。

可是,在 React 框架之外,我们作为开拓者照旧可以通过工程化本领到达相同的目标,由于我们可以或许打仗到 JSX 编译成 React.createElement 的整个进程。开拓者在项目中开拓 babel 插件,实现 JSX 编译成 React.createElement,那么优化本领就是是从编写 babel 插件开始:

前端:Vue和React的利益别离是什么?两者的最焦点差别比拟是什么?

虽然 React 并不是没故意识到这个题目,他们在起劲的同 prepack 相助。力争补充构建优化的天赋不敷。

Prepack 同样是 FaceBook 团队的作品。它让你编写平凡的 JavaScript 代码,它在构建阶段就试图相识代码将做什么,然后天生等价的代码,镌汰了运行时的计较劲,就相等于 JavaScript 的部门求值器。

我就用 Prepack 团结 React 尝了个鲜:

前端:Vue和React的利益别离是什么?两者的最焦点差别比拟是什么?

比拟:

前端:Vue和React的利益别离是什么?两者的最焦点差别比拟是什么?

这不正是 React 求之不得的吗?

其它一个 React 的偏向就是 fiber 时刻分片了, 尤雨溪说过:“React 是危险已经造成,无法自身在预编译阶段做到更多,时刻分片这样的优化只是在补充危险”。着实作为 React 的粉丝,这里吹了这么久 Vue,我颁发一下我的设法:这反倒算是 React 多管齐下的一个做法。最后,上一个借助 Babel plugin AST 实现一个相同预编译优化:remove inline functions 的小例子。

前端:Vue和React的利益别离是什么?两者的最焦点差别比拟是什么?

预编译后:

前端:Vue和React的利益别离是什么?两者的最焦点差别比拟是什么?

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读