2021年10月28日,Vueshenzhen邀请了Anthony Fu,Vue和Vite的核心成员来了一次访谈,内容波及Vue、Vite、Nuxt等开源内容,本次访谈分为高低两期,心愿大家珍藏当前缓缓浏览哟~
对于Vue 3
主持人: Vue到3.2之后还会更新吗?还会有哪些新的个性?
Anthony:当初咱们整个团队就是专一在从新做那个文档上,把整个文档构造从新调整,能够了解成有点像相似react最近在做的事件,咱们把整个文档的程序从新翻新了,以往咱们可能会先教怎么用CDN开始,用Vue X,当初可能大家就是曾经默认用构建工具了,那咱们就说一个是options API ,composition API组合式API,这两个不同的货色,大家有时候也会有我不晓得选哪个的问题。那么在之后新的文档外面,咱们会把这两个API平等看待,也就是你能够选你喜爱哪一个API,你所有的文档都会依据你的抉择去变动改变,就是你看同样一个页面,你能够抉择看options API来讲。除了文档的这个局部,3.3的话次要会专一在那个SSR上,就是服务器渲染,而后那个suspense这个货色会稳定下来,咱们可能会去摸索一些那个partial hydration就是局部水合,你网页内容动态的货色,我就间接HTML给你了,我就不再反复一份js文档,而后我就只有你动静的那些局部会给你,那这个货色就是还敬请期待吧。
主持人: 好,这个Vue3的新个性的话,咱们还是十分期待的,那除了Vue3,还有vue2 ,因为之前也提出来说2.7之后咱们可能就不会再发新的版本了,那当初这一块有变动吗?
Anthony:当初打算是2.7肯定会是最初一个marjor版本,就是最初一个性能更新。那么2.7之后呢,它不是不更新不保护,还是会发patch,如果有什么任何安全性的问题或者是有什么bug咱们还是会修的。咱们既然发了3.0之后,那么咱们有新的整个codebase,咱们肯定会更多专一在3.0上。可能3.2之后引入的新的API可能就不肯定会再搬回到vue2了,然而咱们还有社区,其实你像composition API在Vue 2上一开始也是个社区的插件,如果你真的特地须要Vue 2的话那你还是能够用的,毕竟vue2曾经在这里这么多年了,大家都曾经用了这么久了,其实整体来说不会有什么大问题。
主持人: 那方才提到了composition API,那 composition API这一方面有什么新的更新打算吗?
Anthony: 目前没有,因为咱们在3.2时候就曾经对composition API做了很多性能上的优化,引入了几个新的API让整体conditions变得更加灵便一点。可能就是那个ref sugar,大家其实炒的蛮多的就是那个ref sugar,当初还在RFC中,咱们还是持续在看说社区的反馈怎么样,那当初曾经有一个新的proposal感兴趣的话能够去看一下。
主持人: 对于composition API有一个问题就是说之前也提到了composition API会集成到vue2.几的版本外面去,这个的打算是什么样子的?
Anthony: 只能说可能还要再等一等,因为咱们可能还是要先把文档这部分先做完,才会去思考2.7的更新,整个2.7如果说要去做的话,还是有肯定的工程量的,咱们要把整个代码库用ts重写,咱们曾经有一个pr在那边了,整体来说还是须要去做很多的测试之类的,其实当初这个composition API Vue2的插件曾经十分多人在用了,基本上曾经是一个趋近于稳固的版本, 其实你用的插件大部分状况应该都能够满足你的要求。
对于Vite
主持人:vite的最新进展能够分享一下吗?
Anthony: vite的话,咱们当初大略是一个星期发一个版本,每个星期一还是星期二会发一个新的版本,而后可能每隔两到三个星期会发一个发一个minor,就是发一个性能版本,上一次的性能版本咱们整体优化了这个request的,咱们以前是所有的request都从服务器这边申请过去,那么我要等服务器申请,我就给你trans这个模块,咱们只做这个模块发给服务器之后,再等服务器发另外一个申请过去,咱们再做另外一个模块。但其实,咱们就能够说咱们曾经晓得这个模块数的关系了之后咱们能够间接把整个数,除了动静的节点,咱们能够间接把整个树全副都先transform过一遍,咱们先间接把cpu密集的货色全副都算掉,之后等浏览器来的时候,咱们就曾经筹备好了,就间接下来了,那这算是对一开始启动的时候有个更快的优化,而后再来就是咱们用了esbuild去做CSS的minify,也比本来的快了大略40%,咱们当初筹备Vue2.7,Vue2.7的话次要是一个安全性的性能更新,咱们在很早之前就曾经做了一个flag,因为vite它会把你本地文件给裸露在那个网页外面,裸露在这个网页端口里,以前的话你开了服务器之后,只有它可能连上你的服务器,它其实能够看到你整个电脑外面所有的文件,只有它晓得门路的话,而后咱们起初是加了一个flag,你能够把这个货色关掉,这个货色其实是蛮简单的,你要怎么晓得哪些货色是能够拜访,哪些货色不能拜访?那咱们其实做了很多比拟智能化、人性化的货色,心愿大家能够开箱即用,同时也不会面临这种危险,之前始终作为一个实验性的性能这个开关默认是关掉的,在2.7外面咱们会把它开起来,也就是说从2.7开始就是默认是平安的,之后可能还会再遇到一些问题,那到时候咱们再持续解决。
主持人: 那咱们也十分期待vite持续的更新,vite的确为何十分的快。那vite将来还有一些其余的打算吗?
Anthony:当初其实在打包的时候,还是蛮大程度上依赖rollup的能力,那依赖rollup的话就是还是没有那么快,那咱们要期待esbuild这边的许多性能,比如说什么code splitting当初还没有做的特地欠缺,等esbuild跟上之后,咱们会思考引入更多的esbuild去优化,让整体的体验变得更快。
其余
主持人: 还有其余的几个问题,第一个是对于Nuxt的,因为你刚刚说曾经入职Nuxtlab,那Nuxt3这块有什么新的个性吗?
Anthony: Nuxt3其实还挺多的,我就略微讲一讲, Nuxt3当初同时反对vite跟webpack引擎,你能够本人选,咱们当初筹备让整个社区Nuxt3 的模块能够去反对两个不同的引擎,再一个是咱们引入了一个新的这个叫bundle的引擎,叫做Nitro,Nitro就是你服务器打包进去的这个产物,它是能够兼容这个edge rendering就是端渲染,我不晓得国内怎么翻译,它是不依赖于node,你能够把它部署在你的离用户最近的CDN节点而后去节俭整个服务器的性能的损耗,而后也能够让你的利用变得更快之类的。
而后,咱们引入了很多开发者体验上的的优化,比如说像之前那个async data,当初曾经反对composition API了,你能够轻易在哪里都能够调用它,你不须要肯定要在patch上面的option API根组件上能力用,你当初在哪里都能够调用,再一个就是有API 的主动引入,组件的主动引入,就是你放组件在components这个目录下,它就会主动帮你引入到Vue外面,你放几个js文件在那个composables上面,而后你去esport一些你可能本人做的一些Vue3的钩子,这些货色也会主动引入。
主持人:Nuxt3当初正式版公布了吗?
Anthony:Nuxt3前两个礼拜发了beta公开咱们开源了,正式版还要再期待一段时间,与之同时咱们还发了一个叫做Nuxt bridge,那这个bridge的意思就是桥梁,建设Nuxt2和Nuxt3的桥梁,也就是说Nuxt bridge是面向nuxt2的模块,它基本上把Nuxt3的很多性能都搬回到那个Nuxt2上,也就是说包含你能够用composition API,其实咱们底层就是用这个composition API这个插件提供的这个能力,而后你领有刚刚我讲到的这个Nuxt3的各种各样的性能,你也有这个Nitro的这个新的引擎,你也能够用script setup,以前原本是Vue 2不行的,你当初也能够用,就是各种各样的性能。如果你在用Nuxt2的APP的话,那你能够思考下咱们先牵引到bridge,他还是用本来的webpack4,还是用Vue 2,然而你能够有新的性能,同时你能够尽量去贴近Vue 3的这些新的个性,之后你筹备好了那你就能够间接换成Nuxt3,就是两头多了一个过渡的过程,能够让你更好的做迁徙。
主持人: 那这里我想插问一个问题,就是因为你后续会到Nuxtlab工作,那你去那边工作后有什么新的打算吗?
Anthony: 其实我当初曾经在那边工作两个月了,然而这个工作我是remote的、近程的,跟之前做开源有点相似,而后包含我当初做的Nuxt相干的货色也是开源的,只是说一个是你本人想做的货色,一个是公司要调配给你一些工作,差不多是这样的区别。
主持人: 那会影响你在开源社区的参加吗?Vue社区其实你还是member还是比拟沉闷的,Vite社区你也在参加。
Anthony:整体来说公司还是特地的凋谢,我在Vue生态系统做的货色其实对Nuxt也有帮忙,那它其实也是让我本人花一些工夫在做,去摸索一些我本人开源上的货色,像其实很多货色也是我一开始写Vite的插件,而后他们感觉不错那我就搬到Nuxt3外面去,差不多是这样子,整体来说就还是互帮互助的感觉。
主持人: 最初一个问题是对于slidev,这个是一个markdown写PPT的对吧?有人问他的原理是什么?
Anthony:原理是什么,这个太general,简略来说就是他的底层是一个被包装过的beat服务器,下层我去做了一些插件的封装,比如说我把所有的每一个幻灯片,就是每一个幻灯片我都写在同一个Markdown外面,而后用三个杠去做区隔,那这时候我就须要写一个Vite的插件,去把这个文件拆开来,变成几个小小的文件再把它们用Markdown渲染成Vue的组件,再把他们丢到前端上,差不多就是这样的一个流程。而后,就是加了对开发者比拟敌对的货色,比如说代码高亮,那咱们就能够间接用咱们现有的这些前端,所有的这些现有代码高亮的这些技术,行的高亮,就是你有10行的代码,我能够抉择说我当初先亮第一行,第一行怎么样,再调个空格,它能够跑到三到五行亮起来,你能够指引你的读者去看你当初在讲哪一段的代码之类的,咱们还集成Monaco Editor你能够间接在外面写代码,你能够间接做live coding,有typescript的反对,相当于它是一个整个用web的技术去做的一套相似PPT的货色,然而比拟专一于面向曾经对web、对程序工作原理有肯定根底的人,其实就是给程序员用的,就是为程序员打造,我其实也不想说做的那么什么low code之类的,因为我本人就是为了我过后筹备talk的时候,我本人遇到了一些我感觉什么PPT和那个keynote都有点难用,所以我就起初本人写了一个。
主持人:我这边问完了所有提前收集的问题, Anthony也给咱们具体的解答了,非常感谢Anthony陪咱们进行了这次漫长的在线对话。
Anthony:谢谢你们邀请我来分享,心愿对大家有一些帮忙。
大家能够联合视频一起享受哟~VUE SHENZHEN Meetup--Anthony Fu 线上访谈:LINK