
Vue3的到来
Vue3的新特性
包括:
更好的逻辑复用:Vue3引入了组合式API,通过组合函数来实现更加简洁高效的逻辑复用。这解决了选项式API中mixins的问题,使得代码更加简洁和易于维护。
更灵活的代码组织:Vue3的代码组织方式更加灵活,大部分代码自然地被放进了对应的选项里,这使得代码更加清晰易懂。
更好的类型推导:Vue3开始支持TypeScript,这使得开发者能够利用TypeScript的强类型推导功能,书写更健壮可靠的代码。这也让许多纯JavaScript用户也能从IDE中享受到部分类型推导功能。
更快、更小、更易维护:Vue3重构了虚拟DOM的写法,渲染速度提升。同时,使用Proxy代替Object.defineProperty,使得代码更小,更易维护。
移除事件API:在Vue3中,一些事件API如on, once等已经被移除,这也是为了简化代码,提高代码的可读性和可维护性。
总的来说,Vue3在保持原有优势的基础上,进行了一系列的改进,使得其更加易用、灵活和强大。
Vite
Vite是下一代前端工具链,他以快为名,给广大开发者带来秒级的启动速度,可能是目前位置最快的打包工具。
相比较传统的webpack两者都有各自的优点和缺点,具体如下:
Vite的优点:
启动速度快:Vite采用分块打包和ES6模块语法,在开发过程中能够实现快速的热更新和实时预览。
按需编译:Vite在浏览器请求需要的模块时,再对模块进行编译,极大缩短了编译时间。
插件生态完善:Vite由Vue.js的作者开发,因此在使用Vue.js开发项目时,能够提供更好的支持。
Vite的缺点:
生产环境配置:Vite目前只提供了基本的生产环境打包功能,对于一些复杂的项目,可能需要自行配置。
对其他框架支持不够完善:虽然Vite对Vue.js支持非常好,但对其他框架的支持不够完善。
Webpack的优点:
生态丰富:Webpack的插件生态比较完善。
配置复杂:Webpack的配置文件比较全面,功能更强大。
Webpack的缺点:
打包速度慢:由于Webpack在启动时需要打包,所以启动速度比较慢。
热更新速度慢:相比Vite,Webpack的热更新速度比较慢。
Pinia
Pinia是Vue 3的状态管理库,它提供了一种简单、可靠和可扩展的方法来管理应用程序状态。Pinia与Vuex类似,也可以说是下一代的vuex。但是它采用了更现代的API和一些更好的实践。Pinia将状态分为两类:响应式状态和非响应式状态。响应式状态是指可以在Vue组件中使用的状态,而非响应式状态是指不应在Vue组件中使用的状态。这种分离使得Pinia可以更好地控制状态的变化。
Pinia最重要的升级之一就是取消了mutations,当actions中的方法需要更新state时,不需要再调用mutation,可以直接更新state。例如我们有一个state:a,他的原始值是1,我们现在要给他改成2,以下是vuex和pinia 的不同使用方法:
Vuex实例:
new Vuex.Store({
state:{
a:1
},
mutations:{
setA_mutation(state,data)=>{
state.a=data
}
},
actions:{
setA_action({ commit }){
commit('setA_mutation', 2)
}
}
})
Pinia实例:
import { defineStore } from 'pinia';
export default defineStore('app', {
state:{
a:1
},
actions:{
setA_action(){
this.a=2
}
}
}
TypeScript
TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。
TypeScript是JavaScript的超集,具有可选的类型并可以编译为纯JavaScript。从技术上讲TypeScript就是具有静态类型的JavaScript。
TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行在任何浏览器,任何操作系统。TypeScript添加了很多尚未正式发布的ECMAScript新特性(如装饰器)。2012年10月,微软发布了首个公开版本的TypeScript,2013年6月19日,在经历了一个预览版之后微软正式发布了正式版TypeScript。当前最新正式版本为TypeScript 5.2,2023年8月发布。
TypeScript的优点:
增加代码可读性和可维护性:类型系统实际上是最好的文档,大部分的函数看看类型的定义就可以知道如何使用。
在编译阶段发现错误:增强了编辑器和IDE的功能,包括代码补全、接口提示、跳转到定义、重构等。
与JavaScript兼容:TypeScript是JavaScript的超集,.js文件可以直接重命名为.ts即可。
TypeScript的缺点:
学习成本:需要额外学习类型系统,以及如何使用TypeScript。
不适合小项目:小项目或者小团队没有必要使用TypeScript,他不会带来增效,反而会让开发更加繁琐。