React Sass

React & Sass知识点汇总 – 编程小白友好版

React & Sass 知识点汇总

编程小白也能看懂的详细指南 – 通俗解释 + 实际例子

📘 React 核心概念

基础概念

什么是 React?

React 是一个用于构建用户界面的 JavaScript 库。可以把 React 想象成一个高效的UI建造工具,它帮助你用更少的时间和代码创建复杂的网页界面。

React 的核心特点是组件化:你将界面拆分成独立的小块(组件),每个组件管理自己的外观和行为,然后像搭积木一样组合它们。

核心特性

JSX 语法

JSX 是 JavaScript 的语法扩展,让你可以在 JavaScript 代码中写类似 HTML 的结构:

const element = <h1>Hello, world!</h1>;

大白话解释:JSX 就像是把 HTML 直接写在 JavaScript 文件中,这样写界面会更直观。浏览器不认识 JSX,所以 React 会把它转换成普通的 JavaScript。

组件(Components)

组件是 React 的核心构建块。有两种创建组件的方式:

函数组件(推荐)

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

类组件

class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}

组件复用:创建一个组件后,可以在多个地方重复使用它,只需像 HTML 标签一样:
<Welcome name=”Alice” />

Props(属性)

Props 是父组件传递给子组件的数据(类似于函数的参数)。

// 父组件传递数据
<Welcome name=“Alice” />

// 子组件接收数据
function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

重要规则:Props 是只读的!子组件不能修改接收到的 props。

State(状态)

State 是组件内部管理的数据(类似于组件的私有变量)。

function Counter() {
  const [count, setCount] = React.useState(0); // 初始化状态

  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>
        Click me
      </button>
    </div>
  );
}

关键点

  • 使用 useState 创建状态
  • 修改状态必须使用状态更新函数(如 setCount)
  • 状态改变会使组件重新渲染

Hooks

Hooks 是 React 16.8 引入的新特性,让函数组件也能使用状态和其他 React 特性。

useEffect

用于执行副作用操作(如数据获取、订阅等):

React.useEffect(() => {
  document.title = `Clicked ${count} times`;
}, [count]); // 依赖数组:count变化时运行

useContext

用于在组件树中传递数据,避免层层传递 props:

const theme = React.useContext(ThemeContext);
💡 新手提示: 优先学习函数组件和Hooks,这是现代React开发的主流方式。类组件现在主要用于维护旧项目。

🎨 Sass 核心概念

基础概念

什么是 Sass?

Sass (Syntactically Awesome Style Sheets) 是一个CSS 预处理器,可以理解为 CSS 的扩展升级版。它添加了许多强大的功能,让编写 CSS 更高效、更易维护。

Sass 需要编译成普通 CSS 才能在浏览器中使用(通常由构建工具自动完成)。

变量(Variables)

使用变量存储颜色、字体、尺寸等值,方便统一修改:

// 定义变量
$primary-color: #4361ee;
$font-stack: Helvetica, sans-serif;

// 使用变量
body {
  font: 100% $font-stack;
  color: $primary-color;
}

好处:当需要修改主题色时,只需改变变量的值,所有使用该变量的地方都会自动更新。

嵌套(Nesting)

以嵌套结构编写 CSS,更符合 HTML 结构:

nav {
  ul {
    margin: 0;
    padding: 0;
    list-style: none;

    li {
      display: inline-block;

      a {
        text-decoration: none;
      }
    }
  }
}

编译后会生成:
nav ul { … }
nav ul li { … }
nav ul li a { … }

混合(Mixins)

混合器可以定义可重用的样式片段:

// 定义混合
@mixin transform($property) {
  -webkit-transform: $property;
  -ms-transform: $property;
  transform: $property;
}

// 使用混合
.box {
  @include transform(rotate(30deg));
}

应用场景:处理浏览器前缀、创建复杂的动画、定义常用的样式模式等。

继承(Extend/Inheritance)

让一个选择器继承另一个选择器的样式:

// 基础样式
%message-shared {
  border: 1px solid #ccc;
  padding: 10px;
  color: #333;
}

// 继承基础样式
.message {
  @extend %message-shared;
}

.success {
  @extend %message-shared;
  border-color: green;
}

编译后,.message 和 .success 都会获得 %message-shared 的所有样式。

模块化(Modules)

将样式拆分到多个文件中,然后通过导入组合:

// _variables.scss (局部文件)
$primary-color: #4361ee;
$secondary-color: #3f37c9;

// styles.scss (主文件)
@use ‘variables’; // 导入变量文件

body {
  color: variables.$primary-color;
}

好处:更好的组织样式,避免命名冲突。

条件与循环

Sass 支持类似编程语言的流程控制:

条件语句

@if lightness($color) > 30% {
  background-color: #000;
} @else {
  background-color: #fff;
}

循环语句

@for $i from 1 through 5 {
  .item-#{$i} {
    width: 20px * $i;
  }
}
💡 新手提示: 在 React 项目中使用 Sass,通常通过 npm 安装 node-sass 或 sass 包,然后在组件中直接导入 .scss 文件。

React 和 Sass 是强大的前端开发组合 | 本指南专为编程新手设计 | 使用通俗语言解释核心概念

提示:实际开发中,React 通常与 Create React App 或 Vite 等工具一起使用,它们会自动配置 Sass 编译

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部