2022.05.27
题目五:
class Observer {
constructor(data) {
this.defineReactive(data);
}
defineReactive(data) {
Object.keys(value).forEach((key) => {
reactive(value, key, value[key]);
});
}
reactive(obj, key, val) {
// 补充
Object.defineProperty(obj, key, {
enumerable: true,
configurable: true,
get: function () {
console.log(`get key: ${key} val: ${val}`);
return val;
},
set: function () {
console.log(`set key: ${key} val: ${newVal}`);
// 还记得我们上面讨论的闭包么
// 此处将新的值赋给val,保存在内存中,从而达到赋值的效果
val = newVal;
},
});
}
}
const data = {
info: {
name: "lily",
},
};
new Observer(data);/**
执行下面这个代码需要打印以下日志
get info
set name = lucy
*/
data.info.name = 'lucy'
/**
执行下面这个代码需要打印以下日志
set info = 2
*/
data.info = 2
题目 2:
// Foo2 指向 Foo // 3 // Foo2 = Object.create(Foo);
题目三: // 改造这个方法,使其支持 timeout
题目 4:
=>
VNode ?
Vue2 响应式原理?
题目一:
腾讯
性能优化?
静态节点替换,按需
可视区域懒加载
富文本性能优化?
插入腾讯文档
魅族
微前端?
子应用资源
响应头
Access-Control-Allow-Origin: * // 用来做什么?
两个算法:一个二叉树的 DFS,一个匹配小中大括号的。给出几十万列表数据的优化方案。hash 与 history 模式各自优劣与原理。
最后更新于
这有帮助吗?