多页面工程通讯:(面试官描述多工程项目下非兄弟组件传值)
- 答:vuex
- 面试官:还有吗
- 答:这个场景下只能想到vuex
结束后思考:
- SharedWorker
- BroadCast Channel
- Service Worker
- localStorage的StorageEvent事件
多页面工程打包指定项目
- 答:父子工程项目下,配置多项目工程形式,以多个main.js为入口文件指定打包
- 面试官:嗯,但好像希望听到的是不是这个答案
怎么实现强制缓存与协商缓存
- 答:ng配置或者后台服务器轮训
- 面试官:还有吗
- 答:无
结束后思考:
Cache-Control
//设置缓存如下:
<meta http-equiv="Cache-Control" content="max-age=7200" />
promise 原型链上的方法
- 答:.all()算吗
- 面试官:这是实例方法
- 答:想不起来了
结束后思考:
Promise构造函数的原型上实现了then,catch,finally方法 后查询文档,发现日常用的then,catch,finally都是原型链上的方法,我以为这都是实例方法,就并没有说出来,当时还想怎么没听过原型链方法,基础知识太欠缺了,,,
proxy怎么监听未知层级对象变化
- 答:get set
- 面试官: 详细说说
- 答:只知道有get和set供使用,具体使用方法记不清
结束后思考:
function createLogger(obj) {
//遍历obj的属性
for (let key in obj) {
//属性值为对象的则再次转为proxy对象
if (typeof obj[key] === 'object' && obj[key] !== null) {
obj[key] = createLogger(obj[key])
}
}
const proxy = new Proxy(obj, {
get: function(target, property) {
return Reflect.get(target, property)
},
set: function (target, key, value) {
console.log(`修改了 ${key} 的值,新的值为 ${value}`);
return Reflect.set(target, key, value)
}
});
return proxy;
}
最后
-
面试官:好的,我的问题问完了,你有没有问题问我
-
答:想请问招此职位人员是做业务还是攻坚技术方面
-
面试官:业务,但是认为业务和技术是一体的
-
答:好的(感觉凉凉了)
-
面试官:面试结束
总结 :要知其然知其所以然,准备还不够充分,好久没面试过这么硬的技术面了,不灰心,继续成长
-----------分割线-----------
10.10 更新
- 怎么实现0.5px的线
- 三个div水平垂直方向居中
- 什么是闭包,为了解决什么问题
- 前端怎么处理大数据量数据
- 前端怎么展示未知层级的树状结构
- vue的非父子组件传值
- vue的父传子参数在子组件里打印为空,怎么排查问题
- vue的子传父方法的值为子组件this.方法,父组件能接受到吗?能执行此方法吗?
- vue里的mixins使用场景
- vue和mixins的区别