⚠️温馨提示: 文档中包含【1个】暂不支持的区域,请通过搜索关键字【暂不支持的文档区域】进行后续处理

style-system-notes.zip

很多同学可能第一次来,我之前分享了很多公开课,希望对你的技术成长有帮助!

免费分享都在这里,需要 文档和配套视频回放找咨询老师 领取~

【飞书文档】Typescript 进阶与高分技巧,字节面试官细数常问面试题与优秀开源项目最佳实践

【飞书文档】Docker 入门与服务编排进阶,字节前端专家带你光速掌握 CI/CD 运维技能


【飞书文档】ESLint 前端编码规范化与原理剖析,特邀字节大佬分享团队代码质量把控细节

【飞书文档】Notion 与飞书文档协同方案精析,字节前端专家传授百万年薪架构师级项目重难点 飞书文档编辑器原理续,进阶

【飞书文档】Ant Design 组件库架构设计与开发实践,高级前端专家带你掌握基建面试技巧 组件库与团队基建面试必看

【飞书文档】Taro、Tauri 多端开发实践与原理剖析,《Taro 多端开发权威指南》作者带你悟透多端框架原理 多端开发涨薪必学


【飞书文档】Nest 服务端开发与原理深度剖析,《NestJS 实战》作者带你领略框架设计之美 全栈进阶,企业级框架

【飞书文档】Babel 与编译原理详解,字节高级前端专家带你从零实现飞书表格公式执行器

【飞书文档】服务端渲染(SSR)与前后端同构技术原理揭秘,字节前端专家带你光速进阶全栈 进阶必学


【飞书文档】大数据可视化引擎与数字孪生平台设计浅析,字节架构师:一起来剖析 DataWind 数据洞察平台架构之道

【飞书文档】飞书文档协同编辑器技术揭秘,特邀字节架构师分享富文本编辑器方案细节

【飞书文档】前端性能与异常监控平台全链路设计与实践,字节架构师:掌握这整套拿个 40K+ 不在话下吧

【飞书文档】字节面试专场——中厂在职学员冲击大厂 30K+,看看面试官如何评价 大厂模拟面试,问得很深慎看

【飞书文档】冲击中大厂筹备与涨薪突击最优方案,特邀字节面试官带你体验大厂面试全流程


【飞书文档】Webpack 原理深度解读与面试专项突击,字节面试官带你手撕难缠打包构建面试原理题 工程化与构建原理深入

【飞书文档】脚手架/CLI 工具原理与开发实践,特邀字节前端专家带你体悟大厂团队基建与研发工作流 团队基建必看

【飞书文档】Vite 构建过程与源码深度剖析,你怎么也想不到一线大厂工程化构建面试会问这么深!

【飞书文档】Vue3 源码深度剖析,字节面试官教你轻松拿捏高级前端专家面试框架原理题

【飞书文档】React18 源码深度剖析,字节面试官教你轻松拿捏高级前端专家面试框架原理题

【飞书文档】前端破局 AI 应用开发,特邀字节大佬分享字节系 AI 场景落地应用与 AI 引擎编排流程 探索前端新方向同学福音


【飞书文档】高级前端专家如何做性能优化?特邀字节大佬细数飞书应用优化细节(二)【内部培训版】

【飞书文档】小小微前端,轻松拿捏,特邀字节大佬开讲微前端架构与源码剖析【内部培训版】 35K+ 同学必看

【飞书文档】高级前端专家如何做项目架构与工程化设计? 特邀字节大佬细数字节开源项目架构细节【超详细内培版】

【飞书文档】高级前端专家如何做性能优化?特邀字节大佬细数飞书应用优化细节【超详细内培版】


【飞书文档】面试被算法干吐了?字节大佬带你突破极限,冲击 30K+ 必掌握算法与 WebAssembly 技术 冲刺年包 50W+ 同学必看

【飞书文档】字节大佬带你弯道超车,深入剖析大厂面试真题~

【飞书文档】项目没有难点亮点?字节大佬带你前端项目弯道超车

【飞书文档】备战金九银十,进阶大前端,涨薪全突破! 跳槽涨薪需求同学必看

  • 初中级 】除了常规 css,还有哪些样式体系方案,详细说明各自核心概念与优缺点
  • 中高级 】请举例 css、cssinjs、tailwindcss 的使用技巧与方案价值体现
  • 专家级 】你作为高级前端专家 / 前端 Leader,在项目架构初期,如何考虑选择合适的样式体系方案

初中级 】除了常规 css,还有哪些样式体系方案,详细说明各自核心概念与优缺点

除了常规的CSS,还有许多样式体系方案和工具可用。我们可以在不同场景下选择合适方案。

名称代表/示例核心概念优点缺点
CSS 预处理器【已过时】Sass、Less、Stylus
  • 变量、嵌套规则、混合器(Mixin)、继承(Extend)、运算。
  • 提供强大工具和逻辑控制(条件、循环)。
  • 提升CSS开发效率,代码模块化、易维护。
  • 提供逻辑控制功能。
  • 需要编译,增加开发流程复杂性。
  • 生成CSS可能冗余,性能优势较低。
CSS in JSStyled-components、Emotion、JSS
  • 样式与组件绑定,动态生成CSS。
  • 支持模块化与作用域隔离。
  • 与React等框架无缝集成,动态样式管理简单
  • 避免全局样式污染。
  • 运行时性能开销大。
  • 学习曲线较陡峭。
CSS模块化(CSS Modules)Webpack支持
  • 自动生成唯一类名避免冲突,样式按需加载。
  • 避免命名冲突,性能优于CSS in JS。
  • 适合模块化项目,维护性强。
  • 需要构建工具支持。
  • 动态样式支持不够灵活。
Atomic CSS / Utility-First CSSTailwind CSS、Bootstrap Utilities提供大量小型功能类名,通过组合构建页面。
  • 快速开发,无需自定义CSS规则。
  • 样式统一,社区生态强大(如Tailwind)。
  • 学习成本高(大量类名)。
  • HTML文件样式类名多,可读性较差。
PostCSS-CSS工具平台,通过插件链实现功能扩展(如自动前缀、变量)。
  • 灵活性强,插件链可定制。
  • 与现代构建工具无缝集成。
学习插件配置复杂,增加开发成本。
BEM命名规范-
  • 基于类名的命名约定:Block(模块)、Element(元素)、Modifier(变体)。
  • 示例: button__icon--large
  • 命名清晰,团队协作友好。
  • 无工具依赖,简单直接。
  • 类名较长,增加代码冗长感。
  • 无法动态生成样式,灵活性低于CSS in JS。
Functional CSSTachyons
  • 样式为功能块,极简类名代表单一功能。
  • 类似Atomic CSS,但更注重功能抽象化。
  • 功能清晰,简化CSS开发。
  • 易于理解和维护。
可读性差,依赖文档记忆。
Scoped CSSVue scoped样式、Shadow DOM样式作用域限制在组件内(如Vue的 scoped 或Web Components的Shadow DOM)。
  • 样式隔离强,代码结构清晰。
  • 不受外部影响。
  • 需要工具链支持。
  • 增加复杂性,全局样式覆盖困难。

CSS预处理器

代表:Sass、Less、Stylus

核心概念:

  • 变量 :定义可复用的值(如颜色、字体大小)。
  • 嵌套规则 :支持结构化的书写方式,体现层级关系。
  • 混合器(Mixin) :复用样式片段。
  • 继承(Extend) :共享规则而不复制代码。
  • 运算 :可直接在CSS中进行数学计算。

优点:

  • 强大的工具和功能提升CSS开发效率。
  • 代码更模块化、易维护。
  • 提供逻辑控制(如条件、循环)。

缺点:

  • 需要编译,增加了开发流程的复杂性。
  • 较低的性能优势(生成的CSS可能冗余)。

CSS in JS

代表:Styled-components、Emotion、JSS

核心概念:

  • 样式与组件绑定,直接在JavaScript中编写CSS。
  • 样式动态化:可以根据组件的状态动态生成CSS。
  • 支持模块化和作用域隔离,无需担心样式冲突。

优点:

  • 与React等现代框架无缝集成。
  • 动态样式管理更简单。
  • 避免全局样式污染。

缺点:

  • 运行时性能开销较大(动态生成CSS)。
  • 可能不适合大型项目中的复杂样式。
  • 学习曲线陡峭,需熟悉JS与CSS的结合方式。

CSS模块化(CSS Modules)

核心概念:

  • 自动生成唯一的类名,避免全局样式冲突。
  • 样式按需加载,按模块分离,提升可维护性。

优点:

  • 与现代工具(如Webpack)无缝配合。
  • 易于维护且避免了命名冲突。
  • 性能优于CSS in JS,因为CSS模块在构建时静态生成。

缺点:

  • 需要构建工具支持。
  • 动态样式支持不如CSS in JS灵活。

Atomic CSS / Utility-First CSS

代表:Tailwind CSS、Bootstrap Utilities

核心概念:

  • 提供大量小型、单一功能的类名(如 flexmt-4text-center )。
  • 通过组合这些类名构建页面,而不是定义特定的样式。

优点:

  • 快速开发:无需写自定义CSS规则。
  • 样式统一,减少样式冗余和重复定义。
  • 强大的社区和生态支持(Tailwind CSS)。

缺点:

  • 学习成本较高(需要记住大量类名)。
  • HTML文件中充满样式类名,可读性较差。
  • 定制化需求高时可能反而不如自定义CSS高效。

PostCSS

核心概念:

  • CSS的工具平台,通过插件链实现功能扩展(如自动前缀、变量、嵌套)。

优点:

  • 灵活性强,可定制插件链。
  • 与现代构建工具无缝集成。

缺点:

  • 需要学习插件配置,复杂度较高。

BEM(Block, Element, Modifier)命名规范

核心概念:

  • 基于类名的命名约定,分为 Block (模块)、 Element (模块内部元素)、 Modifier (模块的变体)。
  • 示例: button__icon--large

优点:

  • 命名清晰,适合团队协作。
  • 全局样式冲突可能性低。
  • 不依赖工具链,简单直接。

缺点:

  • 类名较长,增加代码冗长感。
  • 无法动态生成样式,灵活性低于CSS in JS。

Functional CSS

代表:Tachyons

核心概念:

  • 样式被设计为功能块,极度简化的类名代表单一功能。
  • 类似Atomic CSS,但更注重功能抽象化。

优点:

  • 类似Tailwind,简化CSS开发。
  • 功能清晰,易于理解和维护。

缺点:

  • 可读性可能较差。
  • 高度依赖文档,难以记忆。

Scoped CSS

代表:Vue scoped样式、Shadow DOM

核心概念:

  • 样式作用域被限制在组件内部。
  • 使用技术如Vue的 scoped 属性或Web Components的Shadow DOM实现隔离。

优点:

  • 样式隔离性强,不受外部影响。
  • 代码组织结构清晰。

缺点:

  • 需要工具链支持。
  • 可能增加样式复杂性,某些全局样式难以覆盖。

中高级 】请举例 css、cssinjs、tailwindcss 的使用技巧与方案价值体现

CSS 使用技巧与价值体现

CSS 值得关注的技巧:

  • 变量复用 :通过 :root 定义全局变量,提升可维护性。
  • BEM命名规范 :使代码更清晰。
  • Flex布局 :快速实现响应式设计。

示例:一个按钮组件

HTML 文件:

<!DOCTYPE html>
<html lang="en">
<head>
  <link rel="stylesheet" href="styles.css">
  <title>CSS 示例</title>
</head>
<body>
  <div class="button-container">
    <button class="button button--primary">Primary Button</button>
    <button class="button button--secondary">Secondary Button</button>
  </div>
</body>
</html>

CSS 文件:

/* 定义全局变量 */
:root {
  --primary-color: #3498db;
  --secondary-color: #2ecc71;
  --button-padding: 10px 20px;
  --button-radius: 5px;
}

/* BEM命名 */
.button {
  padding: var(--button-padding);
  border-radius: var(--button-radius);
  border: none;
  color: white;
  font-size: 16px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.button--primary {
  background-color: var(--primary-color);
}

.button--primary:hover {
  background-color: darken(var(--primary-color), 10%);
}

.button--secondary {
  background-color: var(--secondary-color);
}

.button--secondary:hover {
  background-color: darken(var(--secondary-color), 10%);
}

/* 响应式技巧 */
@media (max-width: 600px) {
  .button {
    font-size: 14px;
  }
}

方案价值体现

  • 通过变量和BEM规范,增强了代码的模块化和复用性。
  • 响应式设计提升了适配能力。

CSS-in-JS 使用技巧与价值体现

CSS-in-JS 亮点:

  • 动态样式 :支持根据状态生成样式。
  • 样式隔离 :避免全局污染。
  • 嵌套规则 :便于层级关系定义。

示例:React + Styled-components

安装依赖:

npm install styled-components

React 代码:

import React, { useState } from "react";
import styled from "styled-components";

// 动态样式
const Button = styled.button`
  padding: 10px 20px;
  border-radius: 5px;
  border: none;
  color: white;
  font-size: 16px;
  cursor: pointer;
  background-color: ${(props) => (props.primary ? "#3498db" : "#2ecc71")};
  &:hover {
    background-color: ${(props) => (props.primary ? "#2980b9" : "#27ae60")};
  }
`;

const App = () => {
  const [primary, setPrimary] = useState(true);

  return (
    <div>
      <Button primary={primary} onClick={() => setPrimary(!primary)}>
        {primary ? "Primary Button" : "Secondary Button"}
      </Button>
    </div>
  );
};

export default App;

方案价值体现

  • 样式与组件绑定,减少上下文切换,易于理解。
  • 动态样式让交互更灵活(如 primary 属性)。

TailwindCSS 使用技巧与价值体现

TailwindCSS 优势:

  • 原子化设计 :快速实现复杂布局。
  • 样式集中管理 :通过配置文件定制主题。
  • 快速迭代 :减少自定义CSS编写时间。

示例:按钮组件

安装依赖:

npm install tailwindcss
npx tailwindcss init

配置文件( tailwind.config.js ):

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["**/*.{html,js}"],
  theme: {
    extend: {
      colors: {
        primary: "#3498db",
        secondary: "#2ecc71",
      },
    },
  },
  plugins: [],
};

入口 css 样式:

@tailwind base;
@tailwind components;
@tailwind utilities;

编译输出:

npx tailwind -i style.css -o output.css --watch

HTML 文件:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link href="./output.css" rel="stylesheet" />
  </head>
  <body>
    <h1 class="text-3xl font-bold underline text-primary">Hello world!</h1>
    <h2 class="text-2xl text-secondary">hello world</h2>
  </body>
</html>

方案价值体现

  • 开箱即用的类名加快开发速度。
  • 配置灵活(如主题扩展)满足不同项目需求。

总结

特性 CSS CSS-in-JS TailwindCSS
学习曲线
动态样式支持
可维护性 高(配合BEM等) 高(模块化、隔离) 中(HTML中类名较多)
适合场景 静态页面、小型项目 React等现代框架 快速开发、设计系统

专家级 】如果你是前端 Leader,在项目架构初期,如何考虑选择合适的样式体系方案

样式体系选择的思考框架

在项目架构初期,选择样式体系时需要综合考虑以下因素:

  • 项目特点 :团队规模、交付周期、性能要求。
  • 技术适配性 :是否适合现有的技术栈和工具链。
  • 团队能力 :成员对样式工具的熟悉程度。
  • 未来扩展性 :是否支持模块化、响应式、动态样式等特性。

样式方案技术评审

CSS 与 Module CSS 的基础与进阶

核心概念

  1. 选择器与优先级计算规则

    • 理解层叠规则,避免优先级混乱。
  2. 常用布局方案

    • Flexbox :一维布局,适用于弹性盒子模型。
    • Grid :二维布局,适合复杂页面设计。
  3. 动画与过渡

    • 利用 transition@keyframes 实现交互效果。

高级技巧

  1. 使用变量与计算属性

    • CSS变量( --color-primary )实现主题统一。
    • 动态计算属性提升样式复用性。
  2. 高效媒体查询与响应式设计

    • 使用 @media 定义断点,适配不同屏幕。
  3. 命名规范对比

    • BEM 提高可读性,适合团队协作。
    • 工具化命名(如原子类)更高效但可读性较低。

性能优化

  1. 避免重排与重绘

    • 减少 position: absolutefloat 引发的复杂计算。
  2. 优化工具

    • 使用 contain 限制渲染范围。
    • 利用 will-change 提前优化 GPU 加速。

CSS-in-JS 的核心用法与优劣分析

背景与发展

  • 为什么需要 CSS-in-JS?

    • 随着组件化的普及,CSS-in-JS 提供了动态、模块化的样式管理。
  • 主流框架对比

    • Styled-Components :直观、易用,性能较好。
    • Emotion :灵活性高,支持 TypeScript。
    • JSS :适合复杂定制场景。

核心特性

  1. 动态样式

    • 基于 props 或状态动态生成样式。
  2. 嵌套与继承

    • 模仿传统 CSS 的嵌套规则,简化代码结构。
  3. Scoped 样式

    • 避免全局污染,提升模块化。

最佳实践

  1. 性能控制

    • 避免频繁注入动态样式。
  2. 类型安全

    • 结合 TypeScript 定义样式属性。
  3. 主题系统

    • 实现基于主题的样式切换。

限制与挑战

  • 性能问题:大规模项目中可能引入注入开销。
  • 兼容性:与传统 CSS 或样式库结合需要额外适配。

TailwindCSS 的核心用法与进阶

核心理念

  • 原子化 CSS 通过预定义类名(如 bg-blue-500 )快速实现设计。
  • 减少自定义样式,提升生产效率。

基础使用

  1. 配置文件自定义

    • tailwind.config.js 定义主题颜色、断点等。
  2. 常用类

    • 排版text-centerfont-bold
    • 间距p-4m-2
    • 颜色bg-red-500text-gray-700

高级用法

  1. 动态样式构建

    • 使用 @apply 提取复用的样式逻辑。
  2. 复杂交互

    • 配置 variants 支持如 hoverfocus 等状态样式。
  3. 性能优化

    • 利用 JIT 编译只生成使用的类。

在团队中的实践

  1. 结合设计系统

    • Tailwind 的类名可与组件库风格统一。
  2. 代码风格

    • 通过类名排序、工具链规范可提升可读性。

字节系产品样式方案评审流程

样式评审的目标

  1. 确保样式与设计一致性。
  2. 提高代码的复用性与维护性。
  3. 优化性能,避免冗余样式。

评审标准

  1. 规范性

    • 是否符合团队样式规范?
  2. 复用性与扩展性

    • 样式是否可适应不同场景?
  3. 性能优化

    • 是否存在不必要的重排与重绘?

流程细节

  1. 自查

    • 使用 Stylelint 等工具辅助检查。
  2. 代码 Review

    • 团队协作评审,及时反馈。
  3. 回归测试

    • 通过工具或手动比对视觉效果。

字节系最佳实践

样式体系设计

  1. 分层架构

    • Base Styles :全局样式基础。
    • Components :组件样式。
    • Utilities :工具类样式。
  2. 原子化样式与组件化结合

    • 小型工具类与可复用组件的均衡。

工具链与自动化

  1. 样式检查

    • 使用 Linter 确保规范。
  2. 性能优化

    • CSS 压缩与 Tree-shaking 减少文件大小。

跨端样式管理

  • 通过工具实现 PC、H5、小程序的样式复用。
  • 响应式布局通用解决方案(如 flex 和媒体查询)。

案例分享

  1. 字节内部的分层架构实践。
  2. TailwindCSS 的高效应用场景。

实战:制定团队样式方案

问题分析

  1. 项目特点

    • 小型项目适合原子化样式。
    • 大型项目需要更多模块化和动态样式支持。
  2. 样式目标

    • 统一的风格,支持高效开发。

方案设计

  1. 服务端渲染项目 :CSS/Module CSS 定义全局规则。

  2. React SPA 项目 :CSS-in-JS 管理复杂交互。

  3. 小型 POC 项目快速布局 :TailwindCSS 实现页面搭建。

  4. 工具链支持

    • PostCSS 处理自动前缀与变量。
    • Stylelint 保证代码规范。

验证与迭代

  1. 试点运行

    • 在小范围内测试新方案。
  2. 反馈优化

    • 根据团队反馈调整工具与规范。

简历优化(35K+ 简历模板)

技能描述

  • 熟练掌握 HTML、CSS、JavaScript、Typescript 以及 OOP、FP、 AOP 等设计思想

  • 掌握样式体系构建与落地,对 css 预编译、css in js、module css 以及 utility-first CSS 有深入研究,并从零改良过样式体系以支持 SSR、SSG

  • 熟悉 React、Vue 相关技术栈,熟悉 React、Vue 及相关技术框架的实现原理

  • 掌握构建工具 Webpack、Vite 等,掌握编译工具 Babel,并深入理解其原理,并参与 Rspack 构建

  • 丰富的数据可视化经验,熟悉 Canvas、svg 开发范式,理解 Echarts、Antv 原理,能根据业务需求基于 d3、zrender 开发自定义渲染引擎

  • 丰富的跨端开发经验,熟练使用 Taro、Flutter、React-Native 开发跨端应用,对构建 hybird App 有丰富经验,深入理解跨端开发编译原理

  • 基于 Node.js 开发脚手架、打包构建优化工具及中间件服务

  • 掌握常用设计模式、算法与安全知识,追求开发高质量、高可维护性代码,追求极致产品体验

  • 团队管理经验,并在项目架构设计与性能优化方面具有丰富经验

  • 算法与编程技术

    • 精通各种算法题的分类及解决方法,包括排序与查找、数据结构、动态规划、贪心算法、回溯算法、分治算法、图论算法、数学算法等。
    • 重点掌握动态规划的基本概念、解题步骤和经典题目。
  • 3D 数字孪生平台开发经验

    • 熟练使用 WebGL 和 WebAssembly 技术,开发高效的 3D 渲染引擎。
    • 精通正射影像和倾斜摄影技术,具备 Tile 和模型(包括白膜和精模)的处理经验,能够使用 Blender 进行模型制作。
    • 熟悉材质、光效和粒子系统的实现与优化。
  • 全面性能优化能力

    • 具备打包构建优化经验,熟练使用 Webpack 进行模块打包,掌握 chunk、treeshaking、happypack、cache-loader 等优化技巧,并使用 Webpack Module Federation 进行模块联邦管理。
    • 精通资源优化,能够有效进行图片、字体压缩,管理请求队列,并通过 OSS 和 CDN 提升资源加载速度。
    • 具有应用性能优化经验,包括数据结构优化和应用模块更新。
    • 深入了解缓存机制,熟悉强缓存(Expiration、Cache-Control)、协商缓存(Etag)和策略缓存(Service-Worker)的配置与管理。

项目描述

这个环节至关重要,很多同学不重视,简历随便写一写就开始投递了,结果投出去几百份可能一家公司面试都没有,结果就在怀疑前端行情出问题了

STAR 法则:

  • 遇到了什么问题 question,需求
  • 怎么评估解决方案,方案对比,方案落地 react 状态管理(redux、mobx、jotai、recoil)Vue3 -> Pinia
  • 具体方案落地
  • 结果反思,细节优化思考

大家先看这段描述:

技术栈:Java、Vue2、echarts、WEui、BaiduMap、JavaScript 、HTTP数据库:MySQL管理工具:SVN

责任描述:

1)产品前端研发负责人,主要负责整体样式沟通,样式调配实现;门户、管理平台、移动端、智端、可视化等前端内容实现;

2)实现组织管理、人员管理、党员关系转接、待办通知、绩效考核(复杂功能算法实现)、发展党员(25个流程)、可视化等主体功能,兼容性优化、适配1920*1080屏幕以及响应式布局实现;

3)相关功能开发,包含前后端、数据库;

4)门户框架搭建、门户整体设计、后端接口、门户前端 UI 实现等;

5)微信小程序框架搭建、小程序页面设计及开发、知识图谱技术预演;

6 )项目经理工作辅助,包含需求沟通、UI设计沟通、交付材料项目经历整理、前端代码质量管理、部分功能设计。

深度优化一下

工作内容和成果

  • 架构设计 】参与智慧管理平台整体架构设计、技术选型与方案评审,担任全栈开发,完成相关核心模块
  • 企微开发 】对接企业微信生态,基于企微 SDK 完成平台支付、消息推送、机器人等功能开发
  • 可视化 】主导完成平台可视化渲染引擎(可视化图表的组件,数据协议)设计与开发,基于 echarts (svgRenderer、canvasRenderer 一千万行数据的表格渲染【不能使用 虚拟滚动 】 canvas table,chunk)封装业务图表库,服务于平台可视化场景
  • 地图开发 】使用百度地图 SDK,封装业务地图渲染器(MapRenderer),包含:地图撒点、地区数据下钻等功能
  • 小程序与App 】基于 uniapp 实现智慧党建用户端多端开发落地,产物编译为 H5、微信小程序两端应用
  • 团队基建 】推进团队业务组件库、图表库与基础库沉淀,完成 10+ 个业务组件沉淀,以此提升了团队协同开发效率
  • 优化 】设计产品响应式系统,基于 media query 设计响应式端点规则,适配不同端应用的展示
  • 自研 OA 打通 】...

STAR

【技术栈】

  • Java、Vue2、ECharts、WEui、BaiduMap、JavaScript、HTTP
  • 数据库 :MySQL
  • 管理工具 :SVN

【产品前端研发负责人】

  • 情境 (Situation) :担任产品前端研发负责人,负责门户、管理平台、移动端、智端、可视化等前端内容的实现。
  • 任务 (Task) :主要任务是与设计团队沟通,调配和实现整体样式,确保产品界面的一致性和用户体验。
  • 行动 (Action) :我协调设计与开发团队,定期召开样式沟通会,亲自进行样式的调配与实现,并负责不同平台和设备的前端内容开发。
  • 结果 (Result) :成功实现了多个平台的前端开发工作,提升了产品的用户体验和一致性,获得了团队和用户的高度评价。

【实现复杂功能及优化】

  • 情境 (Situation) :项目需要实现复杂功能算法和大规模功能模块,包括组织管理、人员管理、党员关系转接、待办通知、绩效考核、发展党员(25个流程)和可视化功能。
  • 任务 (Task) :负责上述复杂功能的实现,并优化其兼容性和响应式布局。
  • 行动 (Action) :通过设计和实现复杂算法,确保各模块的功能性;进行兼容性优化,使系统适配1920*1080屏幕和响应式布局。
  • 结果 (Result) :成功实现并优化了所有复杂功能,系统在不同设备和分辨率下均表现良好,提高了用户操作的流畅度和满意度。

【全面功能开发】

  • 情境 (Situation) :需要进行前后端和数据库的全面开发,确保系统各功能模块的无缝集成。
  • 任务 (Task) :开发和实现相关功能,包括前端UI、后端接口和数据库交互。
  • 行动 (Action) :采用Java、Vue2等技术,开发并调试各功能模块,与后端团队密切合作,确保接口的准确性和数据的一致性。
  • 结果 (Result) :成功完成了所有功能模块的开发和集成,系统运行稳定,性能优异,受到了客户的好评。

【微信小程序开发与知识图谱预演】

  • 情境 (Situation) :项目需要开发微信小程序,并进行知识图谱技术的预演。
  • 任务 (Task) :负责小程序框架的搭建、页面设计及开发,同时进行知识图谱的技术预演。
  • 行动 (Action) :使用WEui、JavaScript等技术,设计并开发小程序页面,进行知识图谱的技术预演和验证。
  • 结果 (Result) :成功搭建了微信小程序框架,完成了页面设计和开发工作,知识图谱技术预演顺利,通过了技术验证。

【项目经理工作辅助】

  • 情境 (Situation) :在项目中辅助项目经理,确保项目需求沟通顺畅,UI设计协调到位,交付材料齐全,前端代码质量高。
  • 任务 (Task) :辅助项目经理进行需求沟通、UI设计沟通、交付材料整理、前端代码质量管理以及部分功能设计。
  • 行动 (Action) :积极参与需求和UI设计的沟通,整理和管理项目交付材料,进行代码审查和质量管理,并参与功能设计。
  • 结果 (Result) :成功辅助项目经理完成了项目的各项工作,提高了项目的开发效率和交付质量,确保了项目的顺利进行。

其实还不够,这些项目才是求职香饽饽

你可能不具备这些项目的实战经验,很多同学写了很多年管理系统,简单增删改查项目,如果不跳出这个圈子,很难在薪资上有非常大的突破!

  • 大厂 UI 组件库(Vue3)整体设计与开发实践(monorepo 架构)

  • 大厂业务 Hooks 库(React 18)整体设计与开发实践(从零到一的架构、规范流程)

  • 企业级脚手架工具开发实践

  • 企业级文档编辑器飞书文档开发实践

  • 前端性能、异常与行为监控

  • 3D 可视化数字孪生低代码实战 💥

    • 基于 cesium(arcGis、超图) 方案的 WebGIS 开发实践
    • 基于 openlayer、mapbox 开发
    • 基于 WebGL 3D 可视化开发实践

年包 50W+ 薪资长线规划

核心要素

  1. 全面的技术储备

    1. 框架基础

      • Vue 和 React 经验:包括 Vue3 + Typescript 和 React18(Hooks、Concurrent)
      • 掌握框架原理:React 生态库(React-Router、Redux)和 Vue 生态库原理
    2. 工程化能力

      • 构建工具:Webpack、Vite、Rspack、ESBuild、swc
      • CI/CD 自动化:自动化构建和自动化部署
    3. 基建能力

      • Node.js、命令行工具开发(Cli)
      • UI 库、图表库、工具库开发
    4. 业务领域经验

      • 管理系统和图表类应用
      • 可视化、编辑器、云表格、低代码平台、SaaS 产品、数字孪生、三维可视化
  2. 项目经验

    • 参与过至少两个大型项目,并主导过一个复杂项目
    1. 管理系统:包括项目搭建、技术方案选择、技术栈构建、CI/CD 流程
    2. 其他领域项目:如可视化、编辑器、云表格、低代码平台、SaaS 产品、数字孪生、三维可视化
  3. 面试表现

    1. 个人介绍

      • 准备个人介绍草稿,涵盖基本信息、技术栈和项目重难点
    2. STAR 法则

      • 问题描述:阐述遇到的问题或需求
      • 解决方案评估:方案对比与选择(如 React 状态管理:redux、mobx、jotai、recoil,Vue3 使用 Pinia)
      • 方案实施:具体的实施步骤
      • 反思与优化:项目反思及优化建议
    3. 面试准备

      • 重点复习知识点:如 v8 内存管理、Promise A+ 规范、事件循环、this、面向对象编程原型
      • 技术储备:结合项目经验展示技术在项目中的应用
  4. 学历提升

    1. 现有学历:大专
    2. 未来计划:尽快取得本科证书(不需要注明具体年限)
    3. 学历背景:民办学校
    4. 内推建议:应对学历和工作经历问题,通过内推提升机会

补足短板

  • 项目简单,管理后台一做就是大半年,天天 CRUD

    • 看开源项目(react-hook-form ts 类型、hook 处理、状态管理、架构 Provider,keyPath)
    • 找一些不错的项目练手
    • 拿好的项目,学习完放在简历里, 可视化、编辑器、云表格、低代码、SaaS 产品、数字孪生、三维可视化
    • 1.自研:15K, 2.外包:20K ,这个火坑, 灰(供需决定)
  • 技术栈掌握不深不广,只会用 Vue2 (Vue3 + Typescript),React18(React stack reconciler)

  • 架构、方案设计没碰过

    • React,create-react-app、umi,没有真正从零到一去设计初始化过一个项目
    • Vue,Vue CLI,Vite/Webpack。Vue2 CLI 创出来项目 1. webpack、2.vite
  • 没有专精的技能或业务

    • 自驱 (假定自己是 Leader),项目的赢利点、商业价值【 可视化、编辑器、白板、团队基建、AI产品
    • 与生俱来有些东西,好奇心、自驱力、清晰规划
    • 我:管理平台,HPE(官网、后台管理),云表格(维格表、飞书云表格)、云编辑器(CKEditor 老【html string】)(语雀、【石墨文档】)

妙码学院——全程陪跑、督学、内推

⚠️ 暂不支持的文档区域,【文档小组件】

  • 跨端开发 Taro(Taro 编译器 compiler、运行时 runtime)、uniapp
  • 协同编辑器(文档类、画板类)
  • 团队基建工程(UI 库、图表库、Cli -> 产生产物 npm 包)
  • 3D 可视化数字孪生 bigdata
  • 低代码平台

课程体系 2.0 升级,除了基础知识夯实,融入了更多项目实战内容,包含:

  • 企业级脚手架工具开发实践

  • 企业级文档编辑器飞书文档开发实践

  • 大厂 UI 组件库(Vue3)整体设计与开发实践

  • 大厂业务 Hooks 库(React 18)整体设计与开发实践

  • 埋点与数据监控平台实战

  • 3D 可视化数字孪生实战 💥

    • 基于 cesium 方案的 WebGIS 开发实践
    • 基于 WebGL 3D 可视化开发实践

妙码学院全网独家项目实战矩阵

所有项目实战,均完全 从零到一手写纯原创 ,项目架构与编码规范真一线大厂级。

  • 微前端在分拆原子应用场景下的落地与实践

  • 协同编辑器从零到一架构实现

  • 推动团队基建落地

    • React UI 库
    • Vue Composition API 库
    • 企业级脚手架
  • 数字孪生平台整体架构设计

  • 企业级无代码可视化平台实践(Vue3)

  • 低代码平台设计与实现

    • 编排引擎
    • 流程引擎
    • 编辑器
    • 代码执行器与 JavaScript 沙箱
  • 用户行为分析 SDK 及监控可视化整体实现

  • 可视化渲染引擎设计与实现

  • 基于 RAG / Agent 前端 AI 应用流程编排平台

不同阶段对前端人的硬性要求

以下是对您提供的内容进行权威和专业化改写的建议:

1~3年

在此阶段,重点在于评估个人的基础知识和热情。对前端基础、计算机原理、网络通信和算法等领域的要求较高。由于在此阶段难以评估业务深度,因此更多关注基础知识的掌握程度。

  • 关键在于通过学术教育或网络资源加强基础知识;
  • 在简历中以多种方式展示对前端的热情,展现个人潜力;
  • 积极探索前沿技术,关注国内外技术动态;
  • 尝试开发小型项目或参与社区开源项目;
  • 建立技术博客,以输出促进知识吸收。

3~5年

此阶段通常是向成为独立工程师发展的关键时期,避免重复使用有限的经验。

  • 关注社区中关于进阶的资料和路线,强化基础知识;

  • 深入掌握常用框架的高级用法,探索其原理;

  • 在业务开发中不仅完成功能,还需考虑项目结构设计、封装基础工具、设计和开发基础组件;

  • 思考提高团队效率的方法,例如:

    • 集成代码检验和风格统一插件(如 eslint、stylelint、prettier、spellcheck);
    • 从工程化角度提高本地开发效率,优化webpack构建,探索esbuild、vite等工具;
    • 对于多项目开发,整理差异和统一部分,建立内部脚手架以减少重复工作;
    • 尝试搭建CI/CD平台,维护公司内部的通用npm包;
    • 培养软技能,如沟通协作,协调各角色共同推进目标。

5年以上

进入此阶段,可能朝技术专家或管理方向发展。期望您能够独立负责高复杂度项目,突破关键技术难题。

  • 负责技术调研,关注行业趋势,选择最优技术方案,具备决策能力;
  • 拥有丰富的技术经验和技术储备,能够解决遇到的困难,并有自己的方法论;
  • 协助或主导业务目标制定,合理推动项目达成预期效果;
  • 是否具有团队领导经验,能够协调跨团队项目,处理团队成员情绪问题,解决技能分布不平衡等问题;
  • 打造技术氛围,促进团队共同成长。

职业规划指导

评论区选取三位同学互动,其他同学也可以联系咨询老师,文字方式提供辅导解答。

【未知组件reminder】