前言[[翻译]游雨溪:Vue3的设计过程](https://juejin.im/post/5ecf58...:尤雨溪希望发布2020年上半年Vue3.0,不过已经七月了,2020年的一半已经过去了,很多人去Vue的issue问现在怎么回事,都在专注开发吗?vite起来了吗?这方面,尤雨溪在vuejs/rfc开了个issue,专门解释vue的现状:链接:https://github.com/vuejs/rfcs/issues/183翻译我们很多用户都在问这个问题:Vue什么时候会3准备好了吗?我们无法给出准确的答案,因为预估的软件交付时间本来就不准确,并且我们知道这些不确定性会使计划使用Vue3的项目变得困难。因此我们想提供一些指导和详细的状态更新帮助我们的用户相应地调整他们的期望和计划。在Vue3上花费的大部分时间都花在了设计和构建核心上,这导致了许多令人兴奋的改进。但是,为了给整个框架贴上“准备就绪”的标签,并不仅仅涉及到Vue的核心部分。我们还需要兼容版本的支持库(VueRouter、Vuex、testutils)、工具(CLI、eslint插件、浏览器开发工具扩展、IDE扩展)和文档(用于新用户和旧用户迁移)。虽然我们一直在努力开发所有这些部分,但将所有部分组合在一起需要大量的努力和协调,因此很难预测确切的时间表。我们最初希望在上半年发布Vue32020年,但考虑到目前的进展,我们不得不重新调整。我们目前的目标是在7月中旬发布RC版本(releasecandidate),8月初发布3.0正式版。decisiontree但这并不意味着你现在不能开始使用Vue3。目前,大多数框架部分处于beta或alpha状态,vue的核心版本已经过我们最初采用者的广泛测试。唯一阻止我们使用RC的是浏览器开发工具扩展(目前正在积极开发中)。所有重要的更改都写在RFC中,我们没有计划进行重大更改。如果您一直在等候使用Vue3,以下是决策树,可帮助您进行相关的计划:IWantVue3()asyncfunctionIWantVue3(){awaitread(`https://github.com/vuejs/rfcs/pulls?q=is%3Apr+is%3Amerged+label%3Acore+-label%3Arevoked+-label%3A2.6+sort%3Acomments-desc`)if(isTrue("我只想玩Vue3"))){//如果你只是想尝试Vue3——你现在可以用Vite来做。//Vite(https://github.com/vitejs/vite)是我们//创建的一种新的开发/构建工具,它更轻、更快并生成更小的包。它适用于//开箱即用的Vue3。run(`npminitvite-apphello-vue3`)return}if(isTrue("我打算在一个新项目中使用Vue3")){if(isTrue("我需要IE11支持")){awaitIE11CompatBuild()//2020年7月}if(isTrue("RFC太密集,我需要一个易于阅读的指南")){awaitmigrationGuide()//2020年7月}if(isTrue("我宁愿等到它真的准备好了”){awaitfinalRelease()//目标是2020年8月上旬})run(`npminitvite-apphello-vue3`)return}if(isTrue("我打算升级现有的Vue2项目")){awaitIE11CompatBuild()awaitmigrationGuide()awaitecosystem(//this是棘手的部分:如果你有一个现有的、非平凡的Vue2//应用程序,你可能正在使用一些尚不兼容的依赖项//Vue-3,例如像Nuxt这样的元框架,或UI组件//像Vuetify这样的库。如果是这种情况,我们的建议//是不要急于升级。它*将*需要一些时间让//生态系统赶上。//另请注意,您可以开始使用Vue今天Vue2中的CompositionAPI//通过https://github.com/vuejs/composition-api-一旦3.0发布,我们也将//将兼容的Vue3功能向后移植到2.x。)return}if(isTrue("IamtheauthorofaVueecosystemlibrary")){//是时候让你的库兼容Vue3了!关于转}}框架当前状态Vue3Core当前版本:v3.0.0-beta.18GitHub地址:https://github.com/vuejs/vue-nextRFC地址:https://github.com/vuejs/rfcs/pulls?q=is%3Apr+is%3Amerged+label%3AcoreVue3Core已经处于测试阶段两个多月了我们已经合并了所有计划中的重大变更RFC,并且在正式3.0发布之前不会计划进一步的重大变更。数以千计的早期采用者在新项目中使用它,帮助我们修复了许多错误,并发现了一些与Vue2不一致的行为。在这个阶段,我们认为Vue3核心相当稳定,可以为RC做好准备。VueRouter当前版本:v4.0.0-beta.1GitHub地址:https://github.com/vuejs/vue-router-nextRFC地址:https://github.com/vuejs/rfcs/pulls?q=is%3Apr+is%3Amerged+label%3Arouter4.0版本的routerhooks与vue-router3.x版本仍然存在一些轻微的不一致行为,但这是VueRouter被标记为Beta的唯一原因。这个版本的VueRouter可以用在非关键的新项目上。Vuex当前版本:v4.0.0-beta.4GitHub地址:https://github.com/vuejs/vuex/tree/4.0Vuex4.0和3.x的唯一区别就是兼容Vue3!并且准备和Vue3一起进入RC阶段。VueCLI目前可以通过vue-cli-plugin-vue-next在VueCLI中使用Vue3。您可以构建一个新项目并运行vueaddvue-next以切换到Vue3。当达到RC时,Vue3将成为项目创建过程中的一个选项。注意,如果你不是特别需要Webpack和IE11兼容性,你也可以使用Vite来启动一个Vue3项目。JSX支持目前有两种Vue3的JSX转换实现,语法略有不同(针对Vue特定功能):vueComponent/jsxHcySunYang/vue-next-jsx我们正在使用这个问题收集每个人的意见以确保设计正确统一并制定正式规范,说明Vue功能应如何在JSX中处理。如果您将Vue与JSX一起使用,请在此问题中提供您的反馈。其他项目项目名称状态vue-devtoolsWIP(Vue3betasupportin7月初)eslint-plugin-vuev7.0.0-alpha.9[[GitHub地址]](https://github.com/vuejs/esli...@vue/test-utilsv2.0.0-alpha.7[[GitHub地址]](https://github.com/vuejs/vue-...vue-class-componentv8.0.0-alpha.6[[GitHub地址]](https://github.com/vuejs/vue-...vue-loaderv16.0.0-beta.4[[GitHub地址]](https://github.com/vuejs/vue-...rollup-plugin-vuev6.0.0-beta.6[[GitHub地址]](https://github.com/vueCompone...
