642 字
3 分钟
网易数智·一面
自我介绍
自己介绍一个深刻的项目(GitHub 自己写的项目)
- 可以分享一个具有挑战性或让你最有成就感的项目。说明项目的背景、技术栈、难点以及你在其中的贡献。
问实习(开发一个需求的流程,代码怎么开发到上线的)
- 项目的需求分析与设计。
- 开发阶段,如何实现需求,代码编写、测试等。
- 部署与上线,可能涉及 CI/CD 流程。
React useEffect 中设置一个 setTimeout 里面有一个变量能不能去修改?为什么?
- 这个变量是可以被修改的,但会受到
useEffect中闭包的影响。setTimeout是异步执行的,如果useEffect在setTimeout执行之前重新运行,闭包会捕获到旧的值。因此,变量的修改可能不会立即反映在setTimeout中。
- 这个变量是可以被修改的,但会受到
React 除了 useState 还有哪些 hooks 可以设置状态变量?(useReducer)
useReducer:通常用于复杂状态逻辑的管理,类似于 Redux 的 reducer。useState:适用于简单的状态管理。
React 子传父
- 子组件通过 props 将数据传递给父组件。父组件可以通过回调函数将数据传递到子组件。
Webpack 和 Vite 的区别
- 热更新:Vite 相较于 Webpack 具有更快的热更新速度,Vite 使用原生的 ES 模块加载,更高效。
- 打包方式:Webpack 是打包工具,Vite 是开发工具,Vite 通过开发时的 ES 模块实现即时更新,而 Webpack 需要先编译打包。
Webpack 的 loader 和 plugin 区别?用过哪些?
- Loader:用于转换源代码,比如将 ES6 转为 ES5,或将 SASS 转为 CSS。
- Plugin:用于打包时执行更复杂的任务,比如压缩文件、提取公共模块等。
- 用过的 Loader:
babel-loader、css-loader、style-loader、file-loader。 - 用过的 Plugin:
HtmlWebpackPlugin、MiniCssExtractPlugin、UglifyJsPlugin。
Webpack 怎么做的打包优化?
- 代码分割:通过
SplitChunksPlugin将代码拆分成多个包,按需加载。 - 缓存优化:使用文件哈希(contenthash)来缓存文件,避免不必要的缓存失效。
- 压缩代码:使用
TerserPlugin压缩 JavaScript,减少文件体积。 - Tree Shaking:删除无用代码,减少打包后的代码体积。
- 代码分割:通过
如果使用 Ant Design 组件库需要覆盖掉样式怎么做?
- 可以通过以下几种方式覆盖 Ant Design 样式:
- 使用
style属性进行局部覆盖。 - 使用 CSS 覆盖(需要保证 CSS 的选择器优先级更高)。
- 使用
@import或less配置进行全局主题定制,覆盖 Ant Design 的默认主题。 - 使用 CSS Modules 或 styled-components 定制特定组件的样式。
- 使用
- 可以通过以下几种方式覆盖 Ant Design 样式:
