unsetunset117期unset
1. react中setState是同步还是异步?
2. vue-cli项目打包部署后,遇到静态资源404的问题,通常如何解决?
3. 说说你对git stash的理解?什么应用场景?
上面问题的答案会在第二天的公众号(程序员每日三问)推文中公布
也可以小程序刷题,已收录500+面试题及答案
unsetunset116期问题及答案unset
1. Vue3相比Vue2有哪些改进,请详细说明?
Vue 3相对于Vue 2进行了一些显著的改进和性能优化,主要包括以下方面:
性能提升:
虚拟DOM重写:Vue 3中的虚拟DOM算法更高效,减少了渲染开销。
编译器优化:新的编译器生成更小、更快的代码。
Tree-shaking支持:Vue 3使用ES模块,允许更好的Tree-shaking。
Composition API:
更灵活的组件逻辑组织:Composition API使组件的逻辑更易于组织和重用,使组件更可维护。
更容易共享逻辑:可以将逻辑逻辑封装为函数,并在多个组件中共享。
Teleport:
更灵活的渲染位置:Teleport组件允许你在组件的模板中渲染内容到DOM中的不同位置,有助于实现模态框、弹出菜单等UI模式。
Suspense:
处理异步数据加载:Vue 3引入了Suspense组件,用于处理异步组件加载和数据加载,提供更好的用户体验。
Fragments:
支持多个根元素:Vue 3允许组件模板中有多个根元素,不再要求只有一个根元素。
自定义渲染器:
更广泛的用途:Vue 3的自定义渲染器API使Vue可以在不同的平台上进行渲染,如Web、移动应用、桌面应用等。
Typescript支持:
更好的类型支持:Vue 3的代码库更加友好于TypeScript,提供更丰富的类型提示和检查。
性能优化构建:
优化的生产构建:Vue CLI 3提供了更多的构建优化选项,以减小应用的大小。
指令改进:
v-model支持自定义组件:Vue 3中的
v-model
可以用于自定义组件。新增v-if/v-else-if/v-else的
key
支持:可以在条件渲染中使用key
属性来控制元素的复用。
其他改进:
模板中的变量:Vue 3的模板中支持变量,使模板更具表现力。
全局API重构:一些全局API的用法和名称进行了修改和优化,以改善一致性和可维护性。
总的来说,Vue 3引入了许多性能和开发体验方面的改进,使Vue更强大、更灵活,并提供了更好的工具和生态系统,有助于开发更高效、更可维护的Web应用。这些改进使Vue在现代Web开发中更具竞争力。
2. 如何进行移动端的调试?
移动端的调试通常包括以下几种方式,以确保你的移动应用在不同设备和浏览器上正确运行:
使用浏览器的开发者工具:
Chrome DevTools:在Chrome浏览器中,通过USB连接设备或使用模拟器,你可以使用Chrome DevTools来调试网页。打开Chrome,点击右上角的三个点,选择 "更多工具" > "开发者工具",然后点击左上角的手机图标,选择你要调试的设备。
Safari Web Inspector:在Safari浏览器中,你可以通过连接iOS设备并启用Web检查器来进行调试。在iOS设备的设置中,前往 "Safari" > "高级",启用 "Web检查器"。然后在Mac的Safari浏览器中选择 "开发" > "你的设备名称",以打开Web Inspector。
使用远程调试工具:
Weinre:Weinre是一个开源工具,可以帮助你在远程设备上进行调试。你可以在移动设备上加载Weinre脚本,并通过Web界面远程调试。
Vorlon.js:Vorlon.js是微软开发的远程调试工具,可以用于移动设备的调试。
移动端模拟器/模拟工具:
Chrome模拟器:Chrome浏览器的开发者工具中有一个模拟器选项,可以模拟不同的移动设备。
iOS模拟器:在Mac上,你可以使用Xcode来运行iOS模拟器,以模拟不同的iOS设备。
Android模拟器:你可以使用Android Studio中的模拟器来模拟不同的Android设备。
使用第三方调试工具:
Eruda:Eruda是一个轻量级的移动端调试工具,可以嵌入到移动网页中,提供控制台、元素查看、网络请求等功能。
VConsole:VConsole是另一个移动端调试工具,提供类似的功能,包括控制台、查看DOM、网络请求等。
调试远程设备:
对于远程设备上的调试,你可以使用第三方平台或云服务,如BrowserStack或Sauce Labs,来模拟不同设备和浏览器,然后远程进行调试。
无论你选择哪种方式,移动端调试通常需要在真实设备上进行测试,以确保应用在不同的设备和浏览器上正常运行。调试工具和方法的选择取决于你的需求和偏好,以便更有效地解决问题和优化移动应用。
3. npm是什么?对前端开发来说有什么意义?
NPM代表Node Package Manager,它是一个用于Node.js平台的包管理工具。NPM允许开发者从NPM存储库中下载和安装第三方软件包(如JavaScript库、框架、工具等),并在Node.js应用程序中使用这些软件包。对于前端开发来说,NPM有以下重要意义:
依赖管理:NPM允许前端开发者轻松地管理项目所依赖的第三方软件包。通过在项目的
package.json
文件中列出所需的软件包及其版本,开发者可以确保项目的依赖关系是明确的。模块化开发:NPM使前端开发更加模块化。你可以使用NPM安装各种模块,如JavaScript库、框架、工具,然后在项目中导入和使用这些模块,从而提高代码的可维护性和重用性。
版本控制:NPM允许指定特定版本的软件包,以确保项目在不同时间点保持一致性。这有助于防止由于软件包更新引起的不兼容问题。
自动化构建工具:许多前端构建工具和任务自动化工具(如Webpack、Gulp、Grunt)依赖于NPM来管理各种构建和开发任务的插件。这些工具可以轻松地将NPM软件包集成到项目中。
包管理:NPM不仅用于安装和管理前端依赖,还可用于创建和发布自己的软件包。这使得前端开发者可以分享他们的工作,将其发布为NPM软件包,供其他开发者使用。
生态系统:NPM维护了庞大的JavaScript生态系统,其中包含了数千个开源软件包,涵盖了前端开发的各个方面,从UI库到工具和框架。
总之,NPM是前端开发中的一个关键工具,它使开发者能够更轻松地管理依赖、模块化开发、版本控制,并能够访问广泛的JavaScript软件包,以加速开发过程,提高代码质量和可维护性。因此,NPM对前端开发来说具有重要的意义。
学习不打烊,充电加油只为遇到更好的自己,每天早上9点纯手工发布面试题,每天坚持花20分钟来学习与思考,在千变万化,类库层出不穷的今天,不要等到找工作时才狂刷题,提倡每日学习。