record list
A
TS
的Pick
知道不?知道是咋实现的么 用于构造一个类型,它是从Type
类型里面挑了一些属性Keys
(Keys
是字符串字面量 或者 字符串字面量的联合类型)。interface Test { a: string, b: number, c: boolean } type Todo = Pick<Test, 'a' | 'c'>; var obj: Todo = { a: '1', c: false };
element
按需加载的原理是?在webpack
里是怎么实现的? 核心是通过babel
的babel-plugin-component
。具体操作过程,再babel
转码的时候,把整个element-ui
的引用,变为element-ui/lib/button
具体模块的引用。这样webpack
收集依赖module
就不是整个element-ui
,而是里面具体的button
组件。
// 源码
import { Button } from 'components';
// 转码
var button = require('components/lib/button')
require('components/lib/button/style.css')
B
TS
的泛型了解多少? 泛型有点像函数的传参,比如我们传入了number
类型,那么就可以在函数里使用这个类型,也可以把这个类型当返回值类型。// 这里T代表的就是传入的类型,比如number,string等。当然也可以用其他字母来代替 function add<T>(num: T): T { return num; }; add(123); add('asd');
C
module.exports
有哪些缺点?nodejs
导出包的方式有哪些?http
请求的参数是如何传递的?vue
样式scope
的原理?- 知道哪些跨端框架,比如
uniapp
,rn
,weex
等那些,知道它们的底层是如何设计的吗? - 对
web worker
和WebAssembly
(WASM
)吗? vue-router
的原理是什么?如果让你设计一个,你会怎么设计?- 浏览器的渲染原理?它是如何渲染页面的
cdn
的原理是什么?- 如何设计一个网页版的魔方小游戏,支持旋转,滑动,放大等,并且能够判断当前这一面的颜色是否一致?
D
element
了解多少(主要指源码相关,比如整体架构,表单校验等等原理)低代码知道多少?了解可视化吗? 通过配置化的低成本方式(主要有拖拽)加上少量的一些胶水代码,去满足一些应用的需求。通常B端系统发展的更加完善。 低代码的原理其实就是预置了很多原子组件,通过拖拽的所需组件到画板上进行编排,之后就是进行组件的属性设置。 最终会产生出一份
jsonSchema
或者供开发者二次开发的“源代码”,驱动用户端渲染。原理虽然很简单,但是也有一些实现难点Vue
如何做到在浏览器端、服务端渲染(SSR
)和Node.js
环境下使用的? 它采用的是一种“渐进式框架”的设计模式。具体来说,Vue在不同环境做出了不同的实现:- 浏览器端:
Vue
通过webpack
将多个JavaScript
文件打包成一个能在浏览器运行的文件,浏览器处理HTML DOM
和css
,通过Vue
提供数据绑定,和视图更新机制,可以快速高效地更新视图。 - 服务端渲染(
SSR
):Vue
通过Vue SSR
构建工具(如Nuxt.js
)将Vue组件编译成通用的JavaScript
,在服务器上渲染执行,然后将渲染结果返回给浏览器。这样可以加快首屏加载速度,提高SEO
,并能够更好的适应一些客户端不支持JavaScript
或者关闭JavaScript
的情况。 Node
环境:
E
- 设计模式有哪些? 设计模式是一组被广泛认可的解决方案的方案,它们被用于解决软件开发过程中的常见问题,可以提高代码的可重用性,可扩展性和可维护性。常见的设计模式有以下类别 工厂模式,单例模式,原型模式,适配器模式,桥接模式,观察者模式,访问者模式等
- 知道纯函数吗?
纯函数是指在相同的条件下,永远返回相同输出结果的函数,且无副作用,也就是不会随着传入的参数或者影响函数外部的状态。纯函数有以下的特点:
- 输入参数相同,返回值一定相同
- 函数内部没有任何与外界产生交互的行为,如读写文件,修改全局变量等。
- 函数本身不依赖外部的状态,不会改变外部的状态。 由于纯函数具有这样的特性,所以在函数编程中,纯函数被认为是非常重要的概念。因为纯函数可以避免很多常见的错误,并且易于测试和维护。同时,由于纯函数不依赖外部状态,也更容易实现并发和并行的操作,提高代码的可扩展性和可维护性。