1React基础
项目结构
一个传统的 React 项目结构包括如下部分:
|- node_modules
|- src
|- public (存放页面模板)
|- index.html
|- package.json
- React:核心框架,用于构建用户界面。
- React-dom:负责将 React 组件渲染到 DOM 中,构建 Web 应用页面。
- react-scripts:封装了打包命令,隐藏了 Webpack 等工具的配置细节,简化了开发流程。
修改脚手架配置
使用 eject 命令
eject 命令用于暴露 create-react-app 的配置,允许开发者自定义 Webpack、Babel 等工具的配置。
yarn eject
使用 Less 替代 Sass
默认情况下,create-react-app 使用 Sass 作为样式预处理器。如果你想使用 Less,可以通过以下步骤进行替换:
yarn add less less-loader@8
yarn remove sass-loader
Babel 配置
babel-preset-env 用于将 ES6+ 和 React 语法转换为 ES5,以确保代码在旧版浏览器中也能正常运行。
React 与 Vue 对比(MVC 与 MVVM)
React 和 Vue 都是数据驱动视图的框架,但它们的架构模式有所不同:
- MVC(React):Model-View-Controller 模式。
- MVVM(Vue):Model-View-ViewModel 模式。
Webpack 配置与 React 的关系
通过 eject 命令暴露 Webpack 配置项后,可以重新配置 Webpack,修改默认端口、打包路径等操作。
兼容处理
Webpack 配置可以用于处理兼容性问题,确保代码在不同浏览器中正常运行。
MVC 与 MVVM 的基本思想
- MVC:不直接操作 DOM,而是通过数据操作 DOM。React 是单向数据流,View 到 Model 的驱动需要手动实现。
- MVVM:Vue 实现了双向数据绑定,视图内容改变时会自动映射到数据中。
React 的 MVC 结构
- Controller 层:通过 View 层进行人机交互。
- View 层:基于 JSX 语法构建视图。
- Model 层:根据需要动态变化的数据,建立相应的数据模型。
Vue 的 MVVM 结构
- ViewModel 层:Vue 的核心实现,实现了双向数据绑定。
- View 层:通过 Template 语法实现。
- Model 层:数据模型。
单向数据流与双向数据流
- React: 数据->视图
- Vue: 数据<->视图
重绘与性能优化
- 引起重绘的原因:DOM 操作、样式变化等都会导致浏览器重绘,影响性能。
- 避免重绘:通过虚拟 DOM 和批量更新机制,减少直接操作 DOM 的次数,从而避免不必要的重绘。
总结
React 和 Vue 都是强大的前端框架,各有其优势和适用场景。理解它们的核心概念和架构模式,能够帮助开发者更好地选择和使用合适的工具