Vue 与 React 的浅层 PK

发布于 2022-02-15 21:23:31 字数 879 浏览 1006 评论 0

包装节点:<template><React.Fragment>

Vue 的 <template> 的子节点只能唯一,遇到多个子节点还要用 <div> 包裹(那你这个 <template> 不就等于多此一举了嘛)。而 React 的 <React.Fragment> 则无限制,更骚的是,人家还能简写 <>,形象又生动。

这一轮,React 胜。

组件状态的内外控制:.sync

很常见的场景,比如一个弹框组件,我可以从外部打开它(比如一个弹框按钮),也可以通过弹框里面的关闭按钮关闭它。

通常我们会这样设计:组件的 visible 完全由外部控制,如果内部想改变 visible 状态,在 React 中我们会给组件添加一个回调方法的参数(通常叫做 onClose),在 Vue 中我们会 emit 一个 update:visible 的事件 ,然后在组件外部完成对 visible 的改变。

这个逻辑没错,也很清晰,但是写起来绕。Vue 提供了 .sync 修饰符帮助处理简化了组件外部的写法(实际上是个语法糖),但是组件内部仍然需要手动 emit。并且,在组件嵌套时,中间组件无法使用 .sync,会涉嫌修改 props,所以还得在中间组件中老老实实手动 emit。这样一来还不如 React 直接透穿参数方便。

这一轮,算 Vue 小胜。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

1CH1MKgiKxn9p

文章 0 评论 0

ゞ记忆︶ㄣ

文章 0 评论 0

JackDx

文章 0 评论 0

信远

文章 0 评论 0

yaoduoduo1995

文章 0 评论 0

霞映澄塘

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文