面试题库 词条目录
前端Wiki/词条/Vue 与 React 对比

Vue 与 React 对比

定义两大主流框架的设计哲学差异与选型权衡:约定 vs 自由、模板 vs JSX

设计哲学:Vue 偏「约定优于配置」——官方给全套(路由/状态/构建工具/语法规范都有官方答案),框架帮你做决定,上手快。React 偏「自由与组合」——只提供核心机制,路由/状态/请求都从生态挑,灵活但选型负担重。模板(Vue)接近逻辑与视图分离的传统写法;JSX(React)把逻辑与视图彻底融合(JS 能力全在模板里)。

响应式实现:Vue 是精确的细粒度依赖追踪(Proxy,数据变化知道谁依赖它,精准更新对应组件);React 是全组件树 diff(状态变了组件重渲染,靠 memo/手动优化)。工程化:Vue 官方全家桶(Vue Router/Pinia/Vite)默认匹配;React 生态(React Router + Redux/Zustand + Next/Vite)需要自行决策。

HTML
<!-- 同一个计数器:两版写法对比 -->

<!-- Vue SFC:模板 + 组合式 API -->
<template>
  <button @click="count++">{{ count }}</button>
</template>
<script setup>
import { ref } from 'vue';
const count = ref(0);
</script>
<style scoped>
button { color: #42b883; }
</style>

<!-- React 函数组件:JSX + Hooks -->
import { useState } from 'react';
import styles from './Btn.module.css';

export function Counter() {
  const [count, setCount] = useState(0);
  return (
    <button className={styles.btn} onClick={() => setCount(count + 1)}>
      {count}
    </button>
  );
}
⚠ 常见误区
🔗 相关词条组合式 APIHooksVue 与 React 对比
← 返回来源章节Vue 与 React 对比与选型