Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
Hands-on Nuxt.js Web Development

You're reading from   Hands-on Nuxt.js Web Development Build universal and static-generated Vue.js applications using Nuxt.js

Arrow left icon
Product type Paperback
Published in Aug 2020
Publisher Packt
ISBN-13 9781789952698
Length 698 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Authors (2):
Arrow left icon
Lau Tiam Kok Kok Lau Lau Tiam Kok Kok Lau
Author Profile Icon Lau Tiam Kok Kok Lau
Lau Tiam Kok Kok Lau
LAU THIAM KOK LAU THIAM KOK
Author Profile Icon LAU THIAM KOK
LAU THIAM KOK
Arrow right icon
View More author details
Toc

Table of Contents (26) Chapters Close

Preface 1. Section 1: Your First Nuxt App
2. Introducing Nuxt FREE CHAPTER 3. Getting Started with Nuxt 4. Adding UI Frameworks 5. Section 2: View, Routing, Components, Plugins, and Modules
6. Adding Views, Routes, and Transitions 7. Adding Vue Components 8. Writing Plugins and Modules 9. Adding Vue Forms 10. Section 3: Server-Side Development and Data Management
11. Adding a Server-Side Framework 12. Adding a Server-Side Database 13. Adding a Vuex Store 14. Section 4: Middleware and Security
15. Writing Route Middlewares and Server Middlewares 16. Creating User Logins and API Authentication 17. Section 5: Testing and Deployment
18. Writing End-to-End Tests 19. Using Linters, Formatters, and Deployment Commands 20. Section 6: The Further Fields
21. Creating an SPA with Nuxt 22. Creating a Framework-Agnostic PHP API for Nuxt 23. Creating a Real-Time App with Nuxt 24. Creating a Nuxt App with a CMS and GraphQL 25. Other Books You May Enjoy

Traditional server-side rendered app

Server-side rendering is the most common approach for delivering the data and HTML to the client side on the browser on your screen. It was the only way to do things when the web industry just started. In traditional server-rendered apps or dynamic websites, every request requires a new page re-rendered from the server to the browser. This means you will reload all the scripts, styles, and template(s) once more with every request you send to the server. The idea of reloading and re-rendering does not sound compelling and elegant at all. Even though some of the reloading and re-rendering burdens can be lifted by using AJAX these days, this adds more complexity to the app.

Let's go through the advantages and disadvantages of these types of apps.

Advantages:

  • Better SEO performance: Because the client (browser) gets the finished page with all the data and HTML tags, especially the meta tags that belong to the page, search engines can crawl the page and index it.
  • Faster initial load time: Because the pages and content are rendered on the server side by a server-side scripting language such as PHP before sending it to the client browser, we get the rendered page fast on the client side. Also, there is no need to compile the web pages and content in JavaScript files like we do in traditional SPAs, so the app is loaded quicker on the browser.

Disadvantages:

  • Poorer user experience: Because every page has to be re-rendered and this process takes time on the server, the user has to wait until everything is reloaded on the browser and that may affect the user experience. Most of the time, we want the new data only when provided with the new request; we don't need the HTML base to be regenerated, for example, the navigation bar and the footer, but still, we get these base elements re-rendered, regardless. We can make use of AJAX to render just a particular component, but this makes development more difficult and complex.
  • Tight coupling of the backend and frontend logic: The view and data are usually handled together within the same app. For example, in a typical PHP framework app such as Laravel, you may render the view (https://laravel.com/docs/7.x/views) with a template engine such as Laravel Pug (https://github.com/BKWLD/laravel-pug) in a route. Or, if you are using Express for a traditional server-side rendered app, you may use a template engine such as Pug (https://pugjs.org/api/getting-started.html) or vuexpress (https://github.com/vuexpress/vuexpress) for rending the view (https://expressjs.com/en/guide/using-template-engines.html). In these two frameworks for a typical, traditional server-side rendered app, the view is coupled with the backend logic, even though we can extract the view layer with a template engine. The backend developer has to know what view (for example, home.pug) to use for each specific route or controller. On the other hand, the frontend developer has to work on the view within the same framework as the backend developer. This adds more complexity to the project.
You have been reading a chapter from
Hands-on Nuxt.js Web Development
Published in: Aug 2020
Publisher: Packt
ISBN-13: 9781789952698
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime
Visually different images