React 组件间数据传递 October 12, 2025 1421 words • 8 min read 组件化让我们可以构建可复用的 UI 模块,但这些模块需要一种方式来相互通信。`props` (properties 的缩写) 正是 React 中实现组件间通信的基石,它使得组件变得更加动态和灵活。 Props 是从父组件传递给子组件的任意数据。可以把 props 想象成函数的参数,它们决定了组件的渲染输出和行为。 在 React 中,数据流是**单向的 (Unidirectional... #JavaScript#React#Frontend
React Key October 12, 2025 1262 words • 7 min read 想象一下,我们渲染了一个项目列表。当这个列表的数据更新时,React 需要弄清楚 UI 该如何变化。它面临两个选择: 1. **销毁整个列表,然后从头开始重新创建**:这种方式简单粗暴,但效率极低,会导致所有相关的 DOM 节点和组件实例被重新创建。 2... #JavaScript#React#Frontend
React 渲染 October 12, 2025 1072 words • 6 min read 在应用中,我们经常需要渲染一个项目列表 (Rendering Lists),比如一个待办事项清单、用户列表或文章列表。直接在 JSX 中硬编码列表项是不现实的。 处理动态列表的标准做法是使用 JavaScript 的 `Array. map()` 方法。我们可以在 JSX 的花括号 `{}` 中,将一个数据数组转换为一个 React 元素数组。 ```javascript function... #JavaScript#React#Frontend
React 基础 October 12, 2025 1664 words • 9 min read ```bash npm create vite@latest my-react-app -- --template react cd my-react-app npm install npm run dev ``` Vite 创建的项目结构如下: - `public/`: 存放静态资源,如图片、图标等。此文件夹中的内容在构建时会被直接复制到输出目录。 - `src/`: 存放应用的源代码。... #JavaScript#React#Frontend
JavaScript 语法技巧 October 11, 2025 1475 words • 8 min read > 这里记录了很多JavaScript的神奇技巧,会持续更新. 解构赋值语法是一种允许你将数组或对象中的数据“解压”到独立变量中的表达式。 > 把解构想象成你收到了一个“礼品篮”(对象或数组)。你不需要整个篮子,你只想拿出其中的几样东西(属性或元素),并给它们分别贴上标签(变量名)。解构就是帮你自动完成这个“拿出并贴标签”过程的语法。 这是最常用的解构形式,用于从对象中提取属性。... #JavaScript
JavaScript 测试 October 11, 2025 1656 words • 9 min read **测试驱动开发 (Test-Driven Development, TDD)** 是一种软件开发流程,它的核心思想是**先编写测试,再编写足以让测试通过的代码**。这与传统的“先写代码,后写测试”的流程正好相反。 TDD 遵循一个简短的重复循环,称为“红-绿-重构” (Red-Green-Refactor): 1. **红... #JavaScript
js-form-validation October 10, 2025 1418 words • 8 min read HTML5 为表单输入框提供了一套强大的内置验证机制,通过添加特定的属性即可启用: - `required`:必填字段。 - `type="email"` / `type="url"`:验证字段是否为有效的 Email 或 URL 格式。 - `minlength` / `maxlength`:限制文本输入的最小/最大长度。 - `min` /... #JavaScript#Frontend
Javascript Lint October 10, 2025 1027 words • 6 min read **Linter** 是一种静态代码分析工具,它会像一位严格的“代码审查员”一样,扫描代码并根据预设的规则集报告问题。 > Linter 的工作原理是,它首先将代码解析成一个**抽象语法树 (Abstract Syntax Tree, AST)**。然后,Linter... #JavaScript
JavaScript 面向对象编程 October 10, 2025 1751 words • 9 min read **面向对象编程 (Object-Oriented Programming, OOP)** 的核心目标是将复杂的问题分解为一个个独立的、可管理的单元(对象),从而提高代码的可重用性、可维护性和可扩展性。这种范式主要建立在四个核心原则之上: 1. **封装 (Encapsulation)** 2... #JavaScript#Design Pattern
JavaScript 依赖注入 October 10, 2025 1671 words • 9 min read 在开发中,一个类或模块通常需要依赖其他类或模块来完成工作。最直接的方式是在其内部直接创建依赖的实例。 ```javascript // 一个用于记录日志的服务 class Logger { log(message) { console. log(`[LOG]: ${message}`); } } // 用户服务,它需要使用 Logger class UserService {... #JavaScript#Program Language#Design Pattern