Appearance
前端必备基础回顾
在学习 React 之前,掌握一定的前端基础是非常必要的。本章节将回顾学习 React 所需的 HTML、CSS 和 JavaScript 核心知识。
2.1 HTML核心
语义化标签
<header>:页面头部<nav>:导航栏<main>:主要内容<section>:内容区块<article>:独立内容<aside>:侧边栏<footer>:页面底部
表单元素
<input>:输入框<textarea>:文本域<select>:下拉选择框<button>:按钮<label>:标签
布局基础
- 盒模型:content、padding、border、margin
- 浮动(float):左浮动、右浮动
- 定位(position):static、relative、absolute、fixed
- Flexbox:弹性布局
- Grid:网格布局
2.2 CSS核心
Flex/Grid布局
Flex布局:
display: flex:创建弹性容器flex-direction:主轴方向justify-content:主轴对齐方式align-items:交叉轴对齐方式flex-wrap:换行方式
Grid布局:
display: grid:创建网格容器grid-template-columns:列定义grid-template-rows:行定义grid-gap:网格间距grid-area:网格区域
样式优先级
- 内联样式 > ID选择器 > 类选择器 > 标签选择器
!important优先级最高(尽量避免使用)
响应式基础
- 媒体查询:
@media (max-width: 768px) { ... } - 相对单位:em、rem、%、vw、vh
- 弹性图片:
max-width: 100%
2.3 JavaScript核心
变量、函数、数组/对象操作
变量
var:函数作用域,存在变量提升let:块级作用域,不存在变量提升const:块级作用域,不可修改
函数
- 函数声明:
function name() { ... } - 函数表达式:
const name = function() { ... } - 箭头函数:
const name = () => { ... }
数组操作
push():添加元素到末尾pop():移除末尾元素shift():移除首个元素unshift():添加元素到开头map():映射数组filter():过滤数组reduce():归约数组forEach():遍历数组
对象操作
- 点表示法:
obj.name - 方括号表示法:
obj['name'] Object.keys():获取对象键Object.values():获取对象值Object.entries():获取键值对
ES6+语法
箭头函数
javascript
// 传统函数
function add(a, b) {
return a + b;
}
// 箭头函数
const add = (a, b) => a + b;解构赋值
javascript
// 对象解构
const { name, age } = person;
// 数组解构
const [first, second] = array;模板字符串
javascript
const name = 'React';
const message = `Hello, ${name}!`;let/const
javascript
// let 声明可变变量
let count = 0;
count = 1;
// const 声明不可变变量
const PI = 3.14;扩展运算符
javascript
// 数组扩展
const arr1 = [1, 2];
const arr2 = [...arr1, 3, 4];
// 对象扩展
const obj1 = { a: 1 };
const obj2 = { ...obj1, b: 2 };Promise、async/await
Promise
javascript
const promise = new Promise((resolve, reject) => {
if (condition) {
resolve('Success');
} else {
reject('Error');
}
});
promise
.then(result => console.log(result))
.catch(error => console.log(error));async/await
javascript
async function fetchData() {
try {
const response = await fetch('https://api.example.com');
const data = await response.json();
return data;
} catch (error) {
console.error(error);
}
}数组方法
map
javascript
const numbers = [1, 2, 3];
const doubled = numbers.map(num => num * 2);
// [2, 4, 6]filter
javascript
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(num => num % 2 === 0);
// [2, 4]reduce
javascript
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, num) => acc + num, 0);
// 15forEach
javascript
const numbers = [1, 2, 3];
numbers.forEach(num => console.log(num));
// 1
// 2
// 3find
javascript
const numbers = [1, 2, 3, 4, 5];
const found = numbers.find(num => num > 3);
// 4some
javascript
const numbers = [1, 2, 3, 4, 5];
const hasEven = numbers.some(num => num % 2 === 0);
// trueevery
javascript
const numbers = [1, 2, 3, 4, 5];
const allPositive = numbers.every(num => num > 0);
// true掌握这些前端基础知识,将为你学习 React 打下坚实的基础。在 React 开发中,这些知识会被频繁使用,特别是 JavaScript 的 ES6+ 语法和数组方法。
