三大前端框架对比:Angular、Vue、React 有啥本质区别?

三个我都用过,直到最近我才彻底想明白它们的本质区别。
如果你也对“为什么 Angular 用模板、React 用 JSX、Vue 两边都能搞”感到困惑,那这篇就是为你写的。


🚩一句话总结

框架核心思想写页面的方式
Angular在 HTML 上编程(指令驱动)加属性指令控制模板
Vue模板驱动 + 支持函数式<template> + JS
React一切用 JS(JSX 驱动)JS 函数里返回页面结构

1️⃣ Angular:HTML 增强大师

Angular 就像一个“高级 HTML 解释器”,你写的模板就是 HTML,加上 Angular 的指令。

<!-- Angular 写法 -->
<div *ngIf="showMsg" (click)="sayHello()">Hello Angular</div>
  • *ngIf:控制显示
  • (click):事件绑定
  • [value][disabled] 等属性绑定全靠方括号

👉 特点:HTML 是主角,TS 负责逻辑,结构清晰,但学习曲线不低。


2️⃣ Vue:模板为主,JS 也能上

Vue 更像是前端圈的“中间派”,默认鼓励使用模板,但高手也能上 JS 函数式渲染。

<!-- Vue 模板写法 -->
<template>
  <div v-if="showMsg" @click="sayHello">Hello Vue</div>
</template>

<script setup>
import { ref } from 'vue'
const showMsg = ref(true)
const sayHello = () => alert('Hi')
</script>

👉 v-if@click 是 Vue 的指令,跟 Angular 类似,但更轻量。

高级用户还可以这么写(函数式):

// Vue render 函数写法(像 React)
import { h } from 'vue'

export default {
  render() {
    return this.showMsg ? h('div', { onClick: this.sayHello }, 'Hello Vue') : null
  }
}

3️⃣ React:一切都是 JS

第一次用 React 的时候,我整个人都懵了:**这也叫写页面?**其实它是把 UI 看成函数的返回值。

// React 写法
function App() {
  const [showMsg, setShowMsg] = useState(true)

  return showMsg && (
    <div onClick={() => alert('Hi')}>Hello React</div>
  )
}

JSX 看起来像 HTML,其实是 JS 语法糖。你可以在里面写表达式、逻辑、条件渲染,想写啥就写啥

👉 React 最大的自由,也是一开始最让人迷惑的地方。


🌟 它们的本质区别是“谁说了算”

框架谁主导页面结构?像什么?
AngularHTML 说了算HTML为王
Vue模板说了算,但JS能插手两边都沾
ReactJavaScript 说了算JS为王

所以你会看到:

  • Angular 把 HTML 当主角,一堆语法糖包着
  • Vue 是调和派,前期模板,后期函数化
  • React 是纯粹派,UI = JS 函数返回的结构,别管 HTML

🧠 初学时的不同感受

框架初学感受上手难度
Angular跟写页面很像,但配置复杂⭐⭐⭐⭐
Vue模板熟悉,上手快⭐⭐
ReactJS+HTML 混合有点懵⭐⭐⭐

✅ 总结

  • Angular 是在 HTML 上加功能
  • Vue 是在模板上加逻辑
  • React 是在 JS 上还原页面

你觉得哪个更“优雅”可能因人而异,但理解它们的出发点,你就不容易再被语法细节绕晕了。


📌 最后提一句

我写这篇是为了帮像我一样走过绕路的朋友,如果你也有类似体验,欢迎点赞评论一起讨论。三大框架各有千秋,理解差异,选适合自己的才是最重要的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十步杀一人_千里不留行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值