1. 为什么选择前端
  1. ocr组件中,抽象逻辑和配置,具体讲讲
  1. 项目当中有实现一些什么组件?
  1. 表单组件的实现
  1. interface和type的区别和使用场景

interface主要用于描述数据结构(如对象和类),支持被合并声明; type是一个更为通用的类型别名,可以标识任何类型

具体见[[前端面试常见题-JS篇]]

  1. 实习当中学习到的东西
  1. React中性能优化的策略

useMemo, React.memo, useCallback等

  1. 为什么Vue当中没有

setup只挂载一次

  1. Vue3 的组合式和 React hooks的区别

React hooks在每次渲染时重复执行;

Vue3 composition API setup只在组件创建时执行一次

特性Vue 3 Composition APIReact Hooks
核心原理基于 Proxy 的细粒度响应式系统基于 VDOM 和函数重新执行
执行时机setup 只执行一次组件函数在每次渲染时都执行
状态管理ref, reactive (可变数据)useState (不可变数据)
依赖追踪自动 (大部分情况)手动 (通过依赖数组)
闭包问题几乎没有,因为 setup 只执行一次常见,需要用 useCallback, useRef 等解决
代码风格更接近声明式,定义状态和它们之间的关系更接近函数式,描述每次渲染应该做什么
学习曲线响应式系统需要理解,但 API 更简单直观Hooks 规则和依赖数组是主要难点
  1. React Query

见[[我们为什么要使用React Query]]

  1. ts的工具类

最常用的(针对对象类型的): Partical<Type>: 将Type的所有属性变为可选的; Required<Type>: 将Type的所有属性变为必需的; Readonly<Type>: 将Type的所有属性变为只读的; Pick<Type, Keys>: 从Type中挑选出Keys指定的一组属性,创建一个新类型; Omit<Type, Keys>: 从Type中忽略出Keys指定的一组属性,创建一个新类型; Record<Type, Keys>: 创建一个对象类型,属性键为Keys,属性值为Type;

针对函数和Promise的 Parameters<Type>: 获取函数类型Type的参数类型,放在元组中 ReturnType<Type>: 获取函数类型Type的返回值类型

  1. CSS3的新特性

1. 选择器 (Selectors)

CSS3 引入了更强大、更具表现力的选择器,让你能更精确地定位元素,而无需添加额外的 class 或 id。

  • 属性选择器增强:
    • [attr^="value"]: 选择 attr 属性值以 “value” 开头的元素。
    • [attr$="value"]: 选择 attr 属性值以 “value” 结尾的元素。
    • [attr*="value"]: 选择 attr 属性值包含 “value” 的元素。
  • 结构伪类选择器:
    • :nth-child(n): 选择其父元素下的第 n 个子元素。
    • :nth-of-type(n): 选择其父元素下特定类型的第 n 个子元素。
    • :first-child, :last-child: 选择第一个/最后一个子元素。
    • :only-child: 选择没有兄弟元素的元素。
    • :empty: 选择没有子元素(包括文本节点)的元素。
  • UI 元素状态伪类:
    • :enabled, :disabled: 选择启用/禁用的表单元素。
    • :checked: 选择被选中的单选框或复选框。

2. 盒模型与边框 (Box Model & Borders)

  • border-radius (圆角): 无需图片即可创建圆角。
  • box-shadow (盒子阴影): 为元素添加内阴影或外阴影。
  • border-image (边框图片): 使用图片作为元素的边框。
  • box-sizing: 改变 CSS 盒模型的计算方式。border-box 是一个革命性的值,它让元素的 width 和 height 包含了 padding 和 border,极大简化了布局计算。

3. 背景 (Backgrounds)

  • background-size: 控制背景图片的尺寸(如 cover, contain)。
  • background-origin: 指定背景图片定位的参考区域(padding-box, border-box, content-box)。
  • background-clip: 指定背景图片的绘制区域。
  • 多重背景: 可以在一个元素上应用多个背景图片。

4. 颜色与渐变 (Colors & Gradients)

  • RGBA 和 HSLA 颜色: 增加了 Alpha 透明度通道。rgba(255, 0, 0, 0.5) 表示半透明的红色。
  • opacity: 设置整个元素(包括内容)的透明度。
  • 线性渐变 (Linear Gradients): linear-gradient()
  • 径向渐变 (Radial Gradients): radial-gradient()

5. 文本与字体 (Text & Fonts)

  • text-shadow: 为文本添加阴影。
  • word-wrap / overflow-wrap: 控制长单词或 URL 的换行。
  • text-overflow: 当文本溢出时,用省略号(...)显示。
  • @font-face: 允许在网页中嵌入自定义字体,极大地丰富了网页的字体选择

6. 2D/3D 转换 (Transforms)

允许对元素进行移动、旋转、缩放和倾斜,而不会影响正常的文档流。

  • transform:
    • translate(x, y): 移动。
    • rotate(angle): 旋转。
    • scale(x, y): 缩放。
    • skew(x-angle, y-angle): 倾斜。
  • 3D 转换: translate3d, rotateX, rotateY, perspective 等,可以创建 3D 效果。
  • transform-origin: 设置转换的基点。

7. 过渡 (Transitions)

当元素的某个 CSS 属性值改变时,可以平滑地过渡,而不是瞬间完成。

  • transition: 一个简写属性,用于设置 transition-property, transition-duration, transition-timing-function, transition-delay。

8. 动画 (Animations)

通过 @keyframes 规则,可以创建更复杂的、基于关键帧的动画。

  • @keyframes: 定义动画的各个阶段(帧)的样式。
  • animation: 将 @keyframes 定义的动画应用到元素上,并设置动画名称、时长、速度曲线、延迟、次数、方向等。

9. 布局 (Layout)

这是 CSS3 最具革命性的部分,提供了强大的新布局模型。

  • 弹性盒子布局 (Flexbox):
    • 一维布局模型,非常适合构建组件和复杂的对齐。
    • 核心属性: display: flex, flex-direction, justify-content, align-items, flex-grow, flex-shrink。
  • 网格布局 (Grid):
    • 二维布局模型,可以同时控制行和列,是构建复杂网页整体布局的利器。
    • 核心属性: display: grid, grid-template-columns, grid-template-rows, grid-gap。
  • 多列布局 (Multi-column Layout):
    • 像报纸一样,将内容排成多列。
    • 核心属性: column-count, column-gap, column-rule。

10. 响应式设计 (Responsive Design)

  • 媒体查询 (Media Queries): 允许你根据设备的特性(如视口宽度、屏幕分辨率、方向等)来应用不同的 CSS 规则。这是实现响应式设计的基石。
  1. 三列布局和Promise

懂车帝一面

作者

MeorinLime 梦灵

发布日期

2025 - 08 - 08