一面
1、讲讲在上一家公司都干了哪些事情
2、接着聊聊有什么技术上的沉淀
3、除了redux mbox dva 还用过其他的状态管理吗?
4、hooks 原理
(1)单向链表通过next把hooks串联起来
(2)memoizedState存在fiber node上,组件之间不会相互影响
(3)useState和useReducer中通过dispatchAction调度更新任务
5、看过 hooks 相关的草案吗
6、vue3 的 类似 hooks 的原理是怎么样的
7、你对蚂蚁有什么期望,或者说技术的规划,想做的东西
二面
1、聊项目,项目的难点,以及自己做了哪些事情
2、为什么项目里会引入 TS
3、dva 和 redux 的区别
(1)dva
①定位:dva 首先是一个基于 redux 和 redux-saga 的数据流方案,然后为了简化开发体验,dva 还额外内置了 react-router 和 fetch,所以也可以理解为一个轻量级的应用框架。dva = React-Router + Redux + Redux-saga;
②核心:
•State:一个对象,保存整个应用状态;
•View:React 组件构成的视图层;
•Action:一个对象,描述事件
•connect 方法:一个函数,绑定 State 到 View
•dispatch 方法:一个函数,发送 Action 到 State
③model:dva 提供 app.model 这个对象,所有的应用逻辑都定义在它上面。
④model内容:
•namespace:model的命名空间;整个应用的 State,由多个小的 Model 的 State 以 namespace 为 key 合成;
•state:该命名空间下的数据池;
•effects:副作用处理函数;
•reducers:等同于 redux 里的 reducer,接收 action,同步更新 state;
•subscriptions:订阅信息;
(2)redux
①定位:它是将flux和函数式编程思想结合在一起形成的架构;
②思想:视图与状态是一一对应的;所有的状态,都保存在一个对象里面;
③API:
•store:就是一个数据池,一个应用只有一个;
•state:一个 State 对应一个 View。只要 State 相同,View 就相同。
•action:State 的变化,会导致 View 的变化。但是,用户接触不到 State,只能接触到 View。所以,State 的变化必须是 View 导致的。Action 就是 View 发出的通知,表示 State 应该要发生变化了。Action 是一个对象。其中的type属性是必须的,表示 Action 的名称。其他属性可以自由设置。
•dispatch:它是view发出action的唯一方法;
•reducer:view发出action后,state要发生变化,reducer就是改变state的处理层,它接收action和state,通过处理action来返回新的state;
•subscribe:监听。监听state,state变化view随之改变;
4、组件升级怎么让使用这个组件的人都知道。
5、如果让你设计项目自动设计组件升级,并且安全,你会怎么去设计
6、职业发展,今年的打算
三面
1、全程聊项目,项目的难点在哪里?怎么解决?项目有什么可以改进的地方吗?
2、接着主要聊业务相关的,看看我对业务的理解,以及一些想法。
3、业务方怎么拿到反馈的,就是做的这个东西具体有什么用?
全部评论
(4) 回帖