为什么会有react和vue这些框架的出现

张开发
2026/4/17 16:07:00 15 分钟阅读

分享文章

为什么会有react和vue这些框架的出现
目录一、一句话核心答案二、没有框架的时代痛点分析原生 JS / jQuery 时代四大痛点三、框架解决的核心问题1. 数据驱动视图2. 组件化开发3. 统一的状态管理 数据流4. 工程化 开发效率四、框架带来的核心价值总结五、面试标准答案背这个一、一句话核心答案为了解决原生开发中 DOM 操作繁琐、数据与视图难以同步的问题实现数据驱动视图、组件化开发提升开发效率和代码可维护性。二、没有框架的时代痛点分析原生 JS / jQuery 时代!-- 一个简单的计数器 -- div span idcount0/span button idbtn1/button /div script let count 0 const countEl document.getElementById(count) const btn document.getElementById(btn) btn.addEventListener(click, () { count // 改数据 countEl.innerText count // 手动改 DOM }) /script四大痛点痛点说明DOM 操作繁琐数据变了要手动找到 DOM 元素并更新代码冗长数据与视图难同步多个地方用到同一个数据时要到处写更新代码代码难以维护逻辑分散在 DOM 操作、事件绑定、数据更新中协作成本高没有统一的代码组织方式每个人写法不同// 复杂场景下的痛点示例 // 用户信息在多个地方显示改了要到处更新 function updateUser(user) { $(#userName).text(user.name) // 更新第1处 $(#userAvatar).src user.avatar // 更新第2处 $(.user-badge).text(user.name) // 更新第3处 // 漏掉一处就出 bug }三、框架解决的核心问题1. 数据驱动视图原生手动改 DOM → 框架数据变 → 视图自动更新// 原生写法 let count 0 document.getElementById(count).innerText count // 手动更新 // Vue/React 写法 const [count, setCount] useState(0) // 只需关心数据视图自动更新你只需要关心数据不用关心 DOM 怎么更新。这就是 Vue/React 最核心的价值。2. 组件化开发没有框架页面一大块 HTML复用靠复制粘贴有框架页面拆成一个个组件可复用、可组合、可独立维护没有组件化 ┌─────────────────────────────────────────────────────────┐ │ 整个页面是一个大文件几千行代码 │ │ 改一个地方可能影响全局 │ │ 复用只能复制粘贴 │ └─────────────────────────────────────────────────────────┘ 有组件化 ┌─────────┐ ┌─────────┐ ┌─────────┐ │ 头部组件 │ │ 列表组件 │ │ 底部组件 │ └─────────┘ └─────────┘ └─────────┘ ↑ ↑ ↑ 独立维护 独立维护 独立维护 可复用 可复用 可复用3. 统一的状态管理 数据流问题没有框架有框架数据存放散落在各个地方集中管理Vuex/Pinia/Redux数据修改谁都能改乱了不知道原因单向数据流修改路径清晰调试困难可追踪、可预测单向数据流 数据 → 视图 → 事件 → 数据闭环清晰4. 工程化 开发效率能力说明脚手架一键生成项目不用手动配置热更新改代码即时看到效果不用刷新页面模块化代码拆分、按需加载打包优化压缩、Tree-shaking、代码分割生态完善路由、状态管理、UI 库、请求库四、框架带来的核心价值总结价值说明数据驱动视图数据变视图自动变不用手动操作 DOM组件化页面拆分成独立组件可复用、易维护单向数据流数据变化可预测、可追踪工程化脚手架、热更新、打包、生态开发效率从写页面变成开发应用五、面试标准答案背这个问为什么会有 React 和 Vue 这些框架答为了解决原生开发中的痛点DOM 操作繁琐原生开发中数据变化需要手动操作 DOM代码冗长且容易出错数据与视图难同步多个地方使用同一数据时需要到处写更新代码代码难以维护逻辑分散没有统一的组织方式协作成本高每个人写法不同难以团队协作框架带来的价值数据驱动视图数据变视图自动变开发者只需关心数据组件化页面拆分成独立组件可复用、易维护统一数据流状态变化可预测、可追踪工程化脚手架、热更新、打包、完善的生态框架让前端从写页面变成了开发应用。

更多文章