zy帮 - 二面
-
推动代码规范化,你借助了什么工具?是怎么思考的?
- 什么是规范化
- 看起来像一个人写的
- 代码风格、文件命名、目录结构、提交规范等规范化的具体落地
- 目的:为了项目的可维护性、一致性、可读性而努力,最终能够提高团队协作的效率
- 细化
- 文件结构
- 代码规范,变量命名,函数,风格统一,eslint + prettier + stylelint
- 提交规范
- 单词拼写规范
操作代码、解析代码(babel),eslint parser 转化代码以后再对代码操作(规范、格式化)
- js 规范化
eslint,专门来做语言质量检查
eslint 首先依然要构建 ast
-
eslint 规范约定
- 规范等级
- off
- warn
- error
- 核心规则
- 语法检查
- 风格一致性
- 最佳实践
- 大量的规范来控制这些代码编写
- eslint + prettier 集成
zxg际 - 二面
diff 算法
它主要是比较新旧虚拟 DOM 树来找出差异。首先,它会对两棵树的根节点进行比较。如果根节点类型不同,就直接替换整个 DOM 树。若根节点类型相同,就开始比较属性和子节点。
在比较子节点时,它采用了多种策略。简单的情况是,新旧子节点都是文本节点,那就直接比较文本内容是否变化。对于多个节点的比较,它会尽量采用最少的操作来更新 DOM。通过为节点添加 key 属性,它能更精准地复用和更新节点,而不是盲目地重新创建。比如,一个列表更新,有了 key 就能快速定位哪些元素新增、删除或者修改,然后高效地把这些变化应用到真实 DOM 上,减少不必要的 DOM 操作,提升性能。虚拟 dom
Vue 的虚拟 DOM 是真实 DOM 的 JavaScript 对象表示。创建时依据模板或渲染函数生成初始虚拟 DOM 树;数据变化就重造新树并用 Diff 算法找差异,分层、依节点属性对比;最后批量将差异应用到真实 DOM,提升性能、优化开发体验。父组件传的值改变了,子组件一定会重新渲染吗
如何排查数据改变了,但是页面没有刷新的问题
-
vue 组件之间数据通信底层原理
- 观察者模式
-
观察者模式、订阅发布模式
- 观察者模式
-
对产品来说什么样的原型图是合格的
- 清晰展示功能流程与布局
- 准确传达交互设计细节
- 包含必要的注释与说明
-
如何保证项目交付质量
- 明确的项目目标和需求定义
- 有效的项目计划和进度管理
- 严格的质量控制措施
- 团队协作和沟通优化
-
和后端有冲突如何解决
- 明确职责分工(项目启动会议)
- 建立有效的沟通机制(项目进度会议)
- 理解对方的工作内容和技术难点(技术分享)
- 通过接口文档来协作
期望总包
我相信自己的专业技能和工作经验能够为公司在项目推进、业务拓展等方面带来显著的收益,我期望的总包也是基于我能够为公司做出的贡献来考虑的