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 只执行一次组件函数在每次渲染时都执行
状态管理refreactive (可变数据)useState (不可变数据)
依赖追踪自动 (大部分情况)手动 (通过依赖数组)
闭包问题几乎没有,因为 setup 只执行一次常见,需要用 useCallbackuseRef 等解决
代码风格更接近声明式,定义状态和它们之间的关系更接近函数式,描述每次渲染应该做什么
学习曲线响应式系统需要理解,但 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: 控制背景图片的尺寸(如 covercontain)。
  • background-origin: 指定背景图片定位的参考区域(padding-boxborder-boxcontent-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 转换translate3drotateXrotateYperspective 等,可以创建 3D 效果。
  • transform-origin: 设置转换的基点。

7. 过渡 (Transitions)

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

  • transition: 一个简写属性,用于设置 transition-propertytransition-durationtransition-timing-functiontransition-delay

8. 动画 (Animations)

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

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

9. 布局 (Layout)

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

  • 弹性盒子布局 (Flexbox):
    • 一维布局模型,非常适合构建组件和复杂的对齐。
    • 核心属性: display: flexflex-directionjustify-contentalign-itemsflex-growflex-shrink
  • 网格布局 (Grid):
    • 二维布局模型,可以同时控制行和列,是构建复杂网页整体布局的利器。
    • 核心属性: display: gridgrid-template-columnsgrid-template-rowsgrid-gap
  • 多列布局 (Multi-column Layout):
    • 像报纸一样,将内容排成多列。
    • 核心属性: column-countcolumn-gapcolumn-rule

10. 响应式设计 (Responsive Design)

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

懂车帝一面

作者

MeorinLime 梦灵

发布日期

2025 - 08 - 08