{"id":11857,"date":"2022-06-26T14:32:13","date_gmt":"2022-06-26T14:32:13","guid":{"rendered":"https:\/\/ui-lib.com\/blog\/?p=11857"},"modified":"2022-06-27T06:37:22","modified_gmt":"2022-06-27T06:37:22","slug":"nuxt-3-release-candidate","status":"publish","type":"post","link":"https:\/\/ui-lib.com\/blog\/nuxt-3-release-candidate\/","title":{"rendered":"What&#8217;s New in Nuxt 3 Release Candidate?"},"content":{"rendered":"\n<p>Have you been wondering about the stable release of Nuxt 3 throughout the year? Your wait is almost over. On 19th April of 2022, Nuxt announced its release candidate stage for Nuxt 3 (Code Named &#8220;Mount Hope&#8221;). In this article, we&#8217;ll look at what&#8217;s new in the latest Nuxt 3 Release Candidate versions and how it can help you develop better web apps. <\/p>\n\n\n\n<p>Earlier, on October 12, 2021, after 16 months of hard work, Nuxt 3 announced its Beta version based on <a href=\"https:\/\/madewithvuejs.com\/blog\/vue-3-roundup\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">Vue 3<\/span><\/a>, <a href=\"https:\/\/vitejs.dev\/guide\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">Vite<\/span><\/a> &amp; <a href=\"https:\/\/v3.nuxtjs.org\/guide\/concepts\/server-engine\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">Nitro<\/span><\/a>. And, since Beta, they are working day and night, to make it ready for a stable release. They have managed to merge over <a href=\"https:\/\/github.com\/nuxt\/framework\/pulls?q=is%3Apr+is%3Amerged+created%3A%3E%3D2021-10-12+\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">1000 pull requests<\/span><\/a>, more than <a href=\"https:\/\/github.com\/nuxt\/framework\/issues?q=is%3Aissue+is%3Aclosed+sort%3Aupdated-desc+created%3A%3E%3D2021-10-12+\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">900 issues<\/span><\/a>, and <a href=\"https:\/\/github.com\/nuxt\/framework\/commits\/main\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">2000+ commits<\/span><\/a>.  <\/p>\n\n\n\n<p>It is now June 20, 2022, and we&#8217;ve just received the information that its stable release is <a href=\"https:\/\/github.com\/nuxt\/framework\/discussions\/5445\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">delayed to July<\/span><\/a>. So far, we can see that it has a ton of features &amp; updates. For those who don&#8217;t know or haven&#8217;t come across the last announcement of RC versions, we are here to help you. Let us find out whether or not Nuxt 3 will be able to gain traction as good as Vue.js in framework features. And, also let&#8217;s find out, will it be able to take the developer experience to a whole new level. <\/p>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\" id=\"h-release-candidate-big-updates\">Release Candidate &#8211; Big Updates<\/h2>\n\n\n\n<p>Currently, Nuxt Release Candidate is in its 4th version. And, the version holds a lot of good stuff in it, which we&#8217;re going to find out just in a moment. The new features in Nuxt 3 Release Candidate not only help you to create a performant web application but also, it will support you with an amazing developing experience. Hop on!<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/v3.nuxtjs.org\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ui-lib.com\/blog\/wp-content\/uploads\/2022\/06\/Nuxt_3_Release_Candidate.png\" alt=\"Nuxt 3 Release Candidate\" class=\"wp-image-11869\" width=\"700\" height=\"368\" srcset=\"https:\/\/ui-lib.com\/blog\/wp-content\/uploads\/2022\/06\/Nuxt_3_Release_Candidate.png 700w, https:\/\/ui-lib.com\/blog\/wp-content\/uploads\/2022\/06\/Nuxt_3_Release_Candidate-300x158.png 300w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><figcaption>Image: Nuxt.js.org<\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Vue 3 &amp; TypeScript<\/h3>\n\n\n\n<p><a href=\"https:\/\/blog.vuejs.org\/posts\/vue-3-as-the-new-default.html\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">Vue 3 is now the new default<\/span><\/a>, and it is generating better results in terms of performance, composition API, and TypeScript Support. So, you&#8217;ll have a fantastic Vue 3 experience with first-rate SSR support. <a href=\"https:\/\/v3.nuxtjs.org\/guide\/concepts\/typescript\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">Nuxt 3 has been completely rewritten in TypeScript<\/span><\/a>. Therefore, it will give you some really useful shortcuts to ensure you have accurate type information while coding.<\/p>\n\n\n\n<p>Besides that, Nuxt will generate a TS configuration file  (<code>.nuxt\/tsconfig.json<\/code>)  and a global types file  (<code>.nuxt\/nuxt.d.ts<\/code>). It is set to provide you with the full TypeScript experience with zero configuration. You will also be able to use the  <code>npx nuxi typecheck<\/code>  command. It manually checks your Nuxt application&#8217;s type. Also, you can enable build or development type-checking.  <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Vite &amp; Webpack<\/h3>\n\n\n\n<p>For the default bundler in Next Apps, there is Vite. The <a href=\"https:\/\/github.com\/vitejs\/vite\/graphs\/contributors\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">Vite Community<\/span><\/a> has done an amazing job. Another important factor is to keep the Webpack support. It is a mature build tool and can ease the migration for Nuxt 2 projects. Thus, it clarifies that Nuxt 3 officially supports both Vite &amp; <a href=\"https:\/\/webpack.js.org\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">Webpack<\/span><\/a>. Read more about <a href=\"https:\/\/stackoverflow.com\/questions\/70721804\/how-to-use-webpack-5-with-nuxt3-project\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><span class=\"has-inline-color has-vivid-green-cyan-color\">how to use Webpack 5 in Nuxt 3 Projects<\/span><\/a>. <\/p>\n\n\n\n<p>The Nuxt 3 project has created a unified plugin system called <a href=\"https:\/\/github.com\/unjs\/unplugin\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><span class=\"has-inline-color has-vivid-green-cyan-color\">unjs\/unplugin<\/span><\/a> for build tools as part of their deep integration. It enables writing universal plugins that work in Rollup, Vite, and Webpack. The Nuxt community has prepared it as a builder agnostic framework for JavaScript&#8217;s perpetually evolving ecosystem. <\/p>\n\n\n\n<p>Furthermore, they successfully elevated vite-node and Webpack lazyCompilation. It has brought on-demand bundling for your Nuxt Application&#8217;s server bundle. Now, Nuxt will always start in seconds, no matter how large your app becomes. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nitro &amp; UnJS<\/h3>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"https:\/\/github.com\/unjs\/nitro\/blob\/main\/CHANGELOG.md\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"350\" src=\"https:\/\/ui-lib.com\/blog\/wp-content\/uploads\/2022\/06\/nitro-unjs-in-nuxt-3-release-candidate.png\" alt=\"\" class=\"wp-image-11872\" srcset=\"https:\/\/ui-lib.com\/blog\/wp-content\/uploads\/2022\/06\/nitro-unjs-in-nuxt-3-release-candidate.png 700w, https:\/\/ui-lib.com\/blog\/wp-content\/uploads\/2022\/06\/nitro-unjs-in-nuxt-3-release-candidate-300x150.png 300w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><figcaption>Image: GitHub<\/figcaption><\/figure><\/div>\n\n\n\n<p>Nuxt 3 now has one major feature in it, called <a href=\"https:\/\/nitro.unjs.io\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">Nitro<\/span><\/a>. It is the new server engine that makes Nuxt a powerful full stack and also a provider-agnostic framework. There are several reasons why Nitro has become a part of Nuxt 3. <\/p>\n\n\n\n<p>First of all, in Nuxt 2 there was a lack of robust server integration. Previously, Nuxt 3 has <a href=\"https:\/\/nuxtjs.org\/docs\/configuration-glossary\/configuration-servermiddleware\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">serverMiddleware<\/span><\/a>. However, the serverMiddleware wasn&#8217;t good enough for developers&#8217; experience. Secondly, the production server was not optimized for use in a lambda environment; boot time was slow and the install size was larger.<\/p>\n\n\n\n<p>The Nitro Server Engine provides cross-platform support for Node.js, browsers, service workers, etc. Also, it gives serverless support, and the API routes are internally powered by the unjs\/h3 project. Other cool features include automatic code-splitting, hot module reloading, and granular control over how your pages render (hybrid mode). <\/p>\n\n\n\n<p>Explore all features of Nitro <a href=\"https:\/\/nitro.unjs.io\/\" target=\"_blank\" rel=\"noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">HERE<\/span><\/a> and learn more about <a href=\"https:\/\/unifiedjs.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">Unifiedjs<\/span><\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Auto Imports<\/h3>\n\n\n\n<p>If you&#8217;re working on different frameworks at the same time, especially on a project with multiple directory structures, importing can be exhausting. On Nuxt 3, you don&#8217;t have to worry about that. With Nuxt 3, you won&#8217;t have to import statements anymore. It will automatically get imported by the Nitro engine. As they are based on a directory and naming structure, Nuxt now easily resolves this issue. <\/p>\n\n\n\n<p>Learn more about different Auto Imports in Nuxt 3 from <a href=\"https:\/\/v3.nuxtjs.org\/guide\/concepts\/auto-imports\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">HERE<\/span><\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">File System Automation<\/h3>\n\n\n\n<p>The File System Automation process started with the <a href=\"https:\/\/v3.nuxtjs.org\/guide\/directory-structure\/pages\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">Pages Directory<\/span><\/a>; each file is mapped to a route. And, Nuxt was the first front-end framework in the ecosystem to support dynamic &amp; nested routes (<a href=\"https:\/\/router.vuejs.org\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">vue-router<\/span><\/a>). However, you can begin working on your project with just an app.vue file. In this case, Nuxt will use a minimal universal router instead, for an optimized bundle size. This can save you 28kB, which is 21% tinier.<\/p>\n\n\n\n<p>Also, in Nuxt 3, each of the files in the plugin directory will be automatically imported and they will run before creating the main component. (<a href=\"https:\/\/v3.nuxtjs.org\/guide\/directory-structure\/app\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">app.vue<\/span><\/a>) <\/p>\n\n\n\n<p>The import won&#8217;t be necessary for components. Your templates will have access to every component inside. The final stage of the process involves Nuxt analyzing your code and only including the parts you really use in the bundle. Developers will have a wonderful experience thanks to this, and production will function at its best. <\/p>\n\n\n\n<p>Moreover, with the help of Vue 3 &amp; Composition API, Nuxt built a new\u00a0<a href=\"https:\/\/v3.nuxtjs.org\/guide\/directory-structure\/composables\" rel=\"noreferrer noopener\" target=\"_blank\">Composables Directory<\/a>. It imports the Vue Composables automatically into your application. <\/p>\n\n\n\n<p>Apart from these, Nuxt 3 also has a new <a href=\"https:\/\/v3.nuxtjs.org\/guide\/features\/server-routes\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">server directory<\/span><\/a> with powerful features and a <a href=\"https:\/\/v3.nuxtjs.org\/guide\/directory-structure\/public\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">public directory<\/span><\/a> (static) that serves all raw files. The server directory adds server routes and backend logic to your Vue app. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Modules<\/h3>\n\n\n\n<p>In programming, modules are the pieces of code that run in a particular order when a framework run in development mode or a project is built for production. Without adding unnecessary boilerplate to your project, the modules let you package, test, and distribute unique solutions as npm packages. They can supply runtime app templates, hook into your Nuxt builder&#8217;s lifecycle events, update the configuration, and take any other necessary customized actions.<\/p>\n\n\n\n<p>For better defaults, typings, and Nuxt version compatibility, they have recently updated the module syntax by using <a href=\"https:\/\/v3.nuxtjs.org\/guide\/going-further\/kit\" target=\"_blank\" rel=\"noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">Nuxt Kit<\/span><\/a>. Nuxt Kit is a group of tools that make working with the internals of the Nuxt platform simple.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Documentation<\/h3>\n\n\n\n<p>In the Beta version of Nuxt 3, the documentation was not good enough. Although it is still incomplete, now it is good enough for the developers who are familiar with Nuxt.js. However, if you&#8217;re new to Nuxt, then you should wait for its stable version. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"412\" src=\"https:\/\/ui-lib.com\/blog\/wp-content\/uploads\/2022\/06\/directory-structure-nuxt-3-release-candidate-4.png\" alt=\"directory structure nuxt 3 release candidate\" class=\"wp-image-11871\" srcset=\"https:\/\/ui-lib.com\/blog\/wp-content\/uploads\/2022\/06\/directory-structure-nuxt-3-release-candidate-4.png 700w, https:\/\/ui-lib.com\/blog\/wp-content\/uploads\/2022\/06\/directory-structure-nuxt-3-release-candidate-4-300x177.png 300w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><figcaption>Image: Hashnode<\/figcaption><\/figure><\/div>\n\n\n\n<p>There are a few features that we found really worth <a href=\"https:\/\/v3.nuxtjs.org\/examples\/essentials\/hello-world\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"has-inline-color has-vivid-green-cyan-color\">checking out<\/span><\/a>. One of them is how your directory structure should be and it gives info about that folder or file. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Will Nuxt 3 Be Able To Gain Traction?<\/h2>\n\n\n\n<p>Till now, these are the most mentionable features &amp; updates of Nuxt 3. We have skipped a few other major features of the Nuxt 3 Release Candidate in this blog. It is because we think it will be more appropriate for us to determine the rest of the good and bad in this framework after its stable release.  <\/p>\n\n\n\n<p>We strongly advise trying Nuxt 2 before utilizing the new version if you&#8217;re unfamiliar with Nuxt.js. However, because many repositories haven&#8217;t updated their packages to be compatible with Nuxt 3, folks who are experienced with Nuxt or have used it for a while avoid using it in large-scale programs. However, this will be an excellent chance for you to explore Nuxt 3 if you have a tiny application, such as a personal website, that has few dependencies.<\/p>\n\n\n\n<p>Finally, it&#8217;s time to ask the big question: will Nuxt 3 gain traction? The answer is yes! Because of the way Nuxt 3 has improved in recent months, we believe it will be worth our time and money to use this newer version of the framework.<\/p>\n\n\n\n<p>Thank you for your time. Happy coding! <\/p>\n\n\n\n<h3 class=\"has-text-align-center wp-block-heading\"><span class=\"has-inline-color has-luminous-vivid-orange-color\">Our Vue Nuxt Product<\/span><\/h3>\n\n\n\n<p class=\"has-text-align-center\"><strong>Bonik &#8211; Ultimate Ecommerce Pro Template &#8211; Vue.js, Nuxt.js, and Vuetify<\/strong><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"https:\/\/store.vuetifyjs.com\/products\/bonik-ultimate-ecommerce-pro\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"459\" src=\"https:\/\/ui-lib.com\/blog\/wp-content\/uploads\/2022\/06\/Bonik-Vue-Nuxtjs-Vuetify-eCommerce-Template.png\" alt=\"\" class=\"wp-image-11873\" srcset=\"https:\/\/ui-lib.com\/blog\/wp-content\/uploads\/2022\/06\/Bonik-Vue-Nuxtjs-Vuetify-eCommerce-Template.png 700w, https:\/\/ui-lib.com\/blog\/wp-content\/uploads\/2022\/06\/Bonik-Vue-Nuxtjs-Vuetify-eCommerce-Template-300x197.png 300w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><figcaption>Image: Vuetify Store<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"has-text-align-center\"><strong><a class=\"button\" href=\"https:\/\/store.vuetifyjs.com\/products\/bonik-ultimate-ecommerce-pro\/preview\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Live Preview<\/a><\/strong>      <strong><a class=\"button\" href=\"https:\/\/store.vuetifyjs.com\/products\/bonik-ultimate-ecommerce-pro\" target=\"_blank\" rel=\"noopener\">Details \/ Download<\/a><\/strong><\/p>\n\n\n\n<h3 class=\"has-text-align-center wp-block-heading\"><span class=\"has-inline-color has-luminous-vivid-orange-color\">Blog Suggestions<\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/ui-lib.com\/blog\/nextjs-vs-nuxtjs\/\" target=\"_blank\" rel=\"noreferrer noopener\">Nextjs vs Nuxtjs: Which One Should You Use?<\/a><\/li><li><a href=\"https:\/\/ui-lib.com\/blog\/best-nuxtjs-boilerplates\/\" target=\"_blank\" rel=\"noreferrer noopener\">Top Nuxtjs Boilerplates You Should Check Out<\/a><\/li><li><a href=\"https:\/\/ui-lib.com\/blog\/best-nuxtjs-templates\/\" target=\"_blank\" rel=\"noreferrer noopener\">Best NuxtJS Templates<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Have you been wondering about the stable release of Nuxt 3 throughout the year? Your wait is almost over. On 19th April of 2022, Nuxt&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/ui-lib.com\/blog\/nuxt-3-release-candidate\/\">Continue reading<span class=\"screen-reader-text\">What&#8217;s New in Nuxt 3 Release Candidate?<\/span><\/a><\/div>\n","protected":false},"author":3,"featured_media":11867,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[858,79,861],"tags":[892,906,895,896,894,899,905,893,897,903,902,900,904,901,898],"class_list":["post-11857","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nuxtjs","category-vue-js","category-vuetify","tag-nuxt-3","tag-nuxt-3-features","tag-nuxt-3-rc","tag-nuxt-3-rc4","tag-nuxt-3-release-candidate","tag-nuxt-3-release-candidate-features","tag-nuxt-3-updates","tag-nuxt-js-3","tag-nuxt-js-3-rc4","tag-vue-3-nuxt-2","tag-vue-3-nuxt-3","tag-vue-js","tag-vue-js-3","tag-vuetify-js","tag-whats-new-in-nuxt-3-release-candidate","entry"],"_links":{"self":[{"href":"https:\/\/ui-lib.com\/blog\/wp-json\/wp\/v2\/posts\/11857","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ui-lib.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ui-lib.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ui-lib.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ui-lib.com\/blog\/wp-json\/wp\/v2\/comments?post=11857"}],"version-history":[{"count":13,"href":"https:\/\/ui-lib.com\/blog\/wp-json\/wp\/v2\/posts\/11857\/revisions"}],"predecessor-version":[{"id":11883,"href":"https:\/\/ui-lib.com\/blog\/wp-json\/wp\/v2\/posts\/11857\/revisions\/11883"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ui-lib.com\/blog\/wp-json\/wp\/v2\/media\/11867"}],"wp:attachment":[{"href":"https:\/\/ui-lib.com\/blog\/wp-json\/wp\/v2\/media?parent=11857"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ui-lib.com\/blog\/wp-json\/wp\/v2\/categories?post=11857"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ui-lib.com\/blog\/wp-json\/wp\/v2\/tags?post=11857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}