NextJS官网实战01:Vue与React的区别

之前用的都是vue,趁着公司还未开始做这个官网项目,我个人一点一点挤时间学习为后面的基建开始打好铺垫。之前做的官网,要么纯vue来做,要么就是海外官网wordpress,古早一些就是html。这次主要是做国内WenDora Ai 的官网,Next.js也比Nuxt更成熟一些,顺带刺激刺激一下自己的大脑,接受知识的冲击吧啊哈哈哈哈哈。

学习来源:React官方文档Next官方文档

个人总结比较偏项目实战性,偏理论上的请点击前面的学习来源移步官方文档进行学习。

整体官方文档看下来后,粗浅的总结如下内容:

vue和react区别
  1. Vue 更像"模板驱动 + 官方全家桶完整方案"。
  2. React 更像"JavaScript 驱动视图 + 用组合拼出应用"
  3. 从 Vue 切到 React,最需要改的不是语法,而是:
    • 从"模板思维"切到"函数组件思维"
    • 从"响应式自动追踪"切到"状态变了就重新渲染"
    • 从"配置式路由"切到"文件即路由"
1. 模板写法不同
javascript 复制代码
//vue 常见写法
<template>
  <div>
    <h1>{{ title }}</h1>
    <button @click="count++">点击</button>
  </div>
</template>

//react 常见写法
export default function Demo() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <h1>{title}</h1>
      <button onClick={() => setCount(count + 1)}>点击</button>
    </div>
  );
}
2、数据流理念不同

Vue 和 React 都是单向数据流,但使用感不一样。

Vue:

  1. props
  2. emit
  3. provide/inject
  4. pinia

React:

  1. props
  2. 回调函数上抛
  3. context
  4. 第三方状态库

Vue 里父子通信通常是:

  • 父传 props
  • 子触发 emit

React 里通常是:

  • 父传 props
  • 子调用父传进来的函数
3、路由思维不一样

Vue 常见:

  1. 建一个 views/
  2. 再建一个 router/index.ts
  3. 手动配置 path 和 component

React + Next:

  1. 文件夹就是路由
  2. 不需要单独写 router 配置
  3. app 目录天然就是路由系统
4、 状态写法不同
javascript 复制代码
//vue 常见
/*
*Vue拿到的是一个响应式容器,修改.value或者对象属性就行了
*/
const count = ref(0);
count.value++;






//React 常见
/*
*react拿到的是当前的状态值,不能直接修改,要通过setState更新
*/
const [count, setCount] = useState(0);
setCount(count + 1);
5、官方生态差异

Vue 的官方整套方案更完整:

  1. Vue
  2. Vue Router
  3. Pinia
  4. Nuxt

React 官方更"核心库化":

  1. React 只管 UI
  2. 路由、数据、框架常常交给生态
  3. Next.js 在 React 世界里承担了"官网/全栈/SEO 框架"的角色
  • Vue 更像一套默认答案,React 更像"给你自由拼装"
  • Next 则是 React 世界里帮你收拢工程方案的框架
5、实用对照表(粗浅版)
Vue 常见写法 React 常见写法
v-if 条件表达式
v-for array.map()
@click onClick
: 绑定属性 JSX 表达式
ref / reactive useState
computed 普通计算 / 派生值
watch useEffect(约等于
emit 回调函数
router/index.ts 文件路由
App.vue layout.tsx
6、核心区别

1、vue是【HTML模板+指令】,react是【JSX(本质上就是js里去写UI)】

2、vue常见的渲染是v-if、v-for、@click这种,react对应的都是js方法类,三元符判断、循环、onClick等这类

3、vue组件上像【配置对象】,react组件像【接收输入并返回UI的函数】

4、响应式的机制也不同,vue强调响应式系统,数据变了,模板依赖自动更新。react强调状态驱动重新渲染,状态变了,组件函数重新跑一遍,重新生成UI描述

相关推荐
weixin_427771618 分钟前
css加载顺序导致本地和线上样式不一致
前端·css
漂流瓶jz7 小时前
Webpack如何实现万物皆可import?loader的使用/配置/手写实践
前端·javascript·webpack
ZC跨境爬虫7 小时前
跟着 MDN 学CSS day_41:显式轨道、隐式网格与区域命名放置
前端·javascript·css·ui·交互
weelinking8 小时前
【产品】12_接入数据库——让数据永久保存
jvm·数据库·python·react.js·数据挖掘·前端框架·产品经理
修己xj8 小时前
告别手动存图!这款叫 Fatkun 的浏览器插件,简直是素材收集神器
前端
袋鼠云数栈9 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能
AskHarries9 小时前
系统提示词、开发者指令和用户输入的优先级
java·前端·数据库
Moment9 小时前
长上下文会最终杀死 Rag 吗?
前端·javascript·后端
qcx2310 小时前
【系统学AI】25 论文导读 ①:两篇改变 AI 的开山之作——Attention Is All You Need & ReAct
前端·人工智能·react.js·transformer
kyriewen11 小时前
大文件上传最全指南:分片、断点续传、秒传,一篇就够了
前端·javascript·面试