Some Good practices you should know if you are using NuxtJS / FR

First thank's to Debbie O'Brien

I did nothing

Just copy past <3

What my slides will looks like ?

LEAD YOUR CODE

Make sure you code looks like it was written by one person

CREATE STANDARDS

Eslint

Prettier

PRE-COMMIT HOOKS

HUSKY

{
  "scripts": {
	...
  },
  "husky": {
  	"hooks": {
    	"pre-commit": "cross-env PRE_COMMIT=true lint-staged"
    }
  }
}

TEST YOUR CODE

cypress

vue-test-utils

jest

VuePress

DOCUMENT YOUR CODE

StoryBook

end of conversation

USE TAILWIND !

STYLES

USE CSS STATS

Gives you auto assets caching

NUXT PWA

USE NUXT GENERATE

Static generated / pre rendered means pre render the application once during build and serve it as a Single Page Application

Faster

Fully Dynamic

Hydration process

SEO Benefits

YOU CAN MIX STATIC + SPA

Use the exclude option

generate: {
  fallback: true,
  exclude: [/booking/]
}

Dynamic Pages

_slug.vue

generate: {
  routes: function () {
    return axios.get(‘https://my-api/blog')
      .then((res) => {
        return res.data.map((post) => {
        	return '/blog/' + post.slug
        })
    })
  }
}

NOT PROD READY BUT 

Will crawl all your <nuxt-link> tags and auto generate your dynamic pages at build time

 

 

https://github.com/nuxt/nuxtjs.org/tree/master/modules/crawler

Nuxt-crawler can help you to achieve that

Run Performance Tests

- Be aware of what your shipping

- Use the wepack analyser

- Run an audit in chrome dev tools

- Check your css with CSS Stats

Analyse your bundle

Yarn build -a

DYNAMIC IMPORT YOUR COMPONENTS

Lazy Load your translations

locales: [
  {
    code: 'en',
    iso: 'en-US',
    name: 'English',
    file: 'en.js',
  },
],
lazy: true,
langDir: 'i18n/',

Modern Mode

Build two versions of your app:

 

modern bundle: browsers that support ES modules

legacy bundle: targets older browsers that do not

 

- npm run build -- --modern

- npm run generate -- -- modern

THAT'S ALL

THANK YOU !

ATECNA RECRUTE

deck

By Florent Giraud

deck

  • 1,035