乐趣区

关于前端:VueVite核心成员Anthony-Fu访谈下

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

退出移动版