我为什么选择 Vue 而不是 React?

新闻 前端
在前端三大框架的日趋成熟的今天,React 和 Vue 的“用户口碑”已经远远超过 Angular。在这篇文章中,我会解释:在这些框架中,我为什么会偏爱 Vue?在这过程中,我会尽力用客观的立场表达这些观点。

 我为什么选择 Vue 而不是 React?

在前端三大框架的日趋成熟的今天,React 和 Vue 的“用户口碑”已经远远超过 Angular。在这篇文章中,我会解释:在这些框架中,我为什么会偏爱 Vue?在这过程中,我会尽力用客观的立场表达这些观点。

列表元素 | List Elements

在 Web app 中,最常见的元素就是用后端给到的数组渲染出一个列表。让我们看看这在 Vue 和 React 中的不同写法。

React

我为什么选择 Vue 而不是 React?

Vue

我为什么选择 Vue 而不是 React?

现在可以对比哪一个更简单:React 的 jsx 还是 Vue 的 template?你决定就好。

我更倾向于 Vue 的写法,它看起来更干净一些。

组件结构 | Component Skeleton Structure

如下是两者组件的不同写法。

React

我为什么选择 Vue 而不是 React?

Vue

我为什么选择 Vue 而不是 React?

对于一个组件来说,把视图层(html/css)和逻辑层(javascript)分开,会使得整个组件变得清爽易读。反观 React 的语法,乍一看是很混乱的(再次强调这只是我个人的看法)。

组件生命周期 | Component Lifecycles

React

  • constructor
  • componentWillMount
  • componentDidMount
  • componentWillUpdate
  • componentDidUpdate
  • render

对于一个新手来说,要区分这些生命周期会让人感到些许疑惑(这可不是 React 的锅),你不能说这些命名有问题,但是从我的直观感受来说:确实不够简练。

Vue

  • created
  • beforeMount
  • mounted
  • beforeUpdate
  • updated

简洁且通俗易懂。

事件绑定 | Event Handling

在任何一个框架中,事件绑定都是一个高频的操作,所以它的写法应该尽可能的简单和直接。现在来看看 React 和 Vue 中事件绑定的不同写法。

React

我为什么选择 Vue 而不是 React?

Vue

我为什么选择 Vue 而不是 React?

对比之下,Vue 为事件绑定提供了非常简便的写法,但在 React 中,开发者需要在定义好函数之后再在 constructor 中绑定好 this 的指向,这对于一个简单的 click 事件来说显得有些不方便(如果用箭头函数定义的话,倒是不用这么麻烦)。

计算属性 | Computed Properties

值得一提的是,Vue 为开发者提供了一个很便捷的属性:computed(是的,React 并没有)。

假设我们有一个叫作 rmb 的属性,但是我们需要把它转换成 dollar 之后渲染在页面上。利用 computed 属性可以很方便的解决这个问题:

我为什么选择 Vue 而不是 React?

总之依我看来,在使用设计/开发体验/学习成本这三个角度,Vue 几乎是以压倒性的优势胜过了现如今的其他各种前端框架。

责任编辑:张燕妮 来源: 今日头条
相关推荐

2012-10-10 16:52:21

CentOSDebianUbuntu

2021-08-14 09:04:58

TypeScriptJavaScript开发

2017-09-11 19:58:06

PostgreSQLMySQL数据库

2024-02-05 21:48:25

VueReactHooks

2021-03-26 11:50:28

Linuxexals

2020-03-03 15:31:47

ReactVue前端

2012-05-18 10:21:30

程序员CC++

2013-03-25 10:14:18

NginxApache

2012-02-28 09:11:51

语言Lua

2021-10-30 19:57:00

HTTP2 HTTP

2013-10-22 15:18:19

2012-11-14 20:55:07

容错服务器选型CIO

2023-04-24 14:32:54

2020-09-15 09:23:19

C++WindowsC#

2020-06-02 14:17:55

QWER排列键盘打印机

2021-04-06 11:07:02

字节跳动组织架构

2022-07-13 15:23:57

Vue fiberreact前端

2021-02-01 07:20:51

KafkaPulsar搜索

2022-05-02 17:34:25

大数据数据分析

2020-07-23 17:43:19

互联网开发程序员
点赞
收藏

51CTO技术栈公众号