Nuxt is an intuitive and extendable way to create type-safe, performant and production-grade full-stack web apps and websites with Vue 3.
Go to file
Sébastien Chopin 2956e73c3e Loading component done
- Loading component working and customisable via nuxt.config.js (see
examples/async-data/)
- Accept callback for new Nuxt(options, cb) with cb(null, nuxt)
- Simplify async-data example
2016-11-07 19:21:32 +01:00
bin Prototype 0.1.0 working 2016-11-07 02:34:58 +01:00
examples Loading component done 2016-11-07 19:21:32 +01:00
lib Loading component done 2016-11-07 19:21:32 +01:00
pages Prototype 0.1.0 working 2016-11-07 02:34:58 +01:00
test Prototype 0.1.0 working 2016-11-07 02:34:58 +01:00
.eslintrc.js Prototype 0.1.0 working 2016-11-07 02:34:58 +01:00
.gitignore Prototype 0.1.0 working 2016-11-07 02:34:58 +01:00
index.js Prototype 0.1.0 working 2016-11-07 02:34:58 +01:00
LICENSE.md License format for Github 2016-11-07 02:40:59 +01:00
package.json Loading component done 2016-11-07 19:21:32 +01:00
README.md Remove files in package.json 2016-11-07 13:55:26 +01:00

WIP: UNSTABLE right now

nuxt.js

A minimalistic framework for server-rendered Vue applications (inspired from Next.js)

How to use

$ npm install nuxt --save

Add a script to your package.json like this:

{
  "scripts": {
    "start": "nuxt"
  }
}

After that, the file-system is the main API. Every .vue file becomes a route that gets automatically processed and rendered.

Populate ./pages/index.vue inside your project:

<template>
  <h1>Hello {{ name }}!</h1>
</template>

<script>
export default {
  data: () => {
    return { name: 'world' }
  }
}
</script>

And then run:

npm start

Go to http://localhost:3000

So far, we get:

  • Automatic transpilation and bundling (with webpack and babel)
  • Hot code reloading
  • Server rendering and indexing of ./pages
  • Static file serving. ./static/ is mapped to /static/
  • Config file nuxt.config.js
  • Code splitting via webpack

Using nuxt.js programmatically

Nuxt is built on the top of ES2015, which makes the code more enjoyable and cleaner to read. It doesn't make use of any transpilers and depends upon Core V8 implemented features. For these reasons, Nuxt.js targets Node.js 4.0 or higher (you might want to launch node with the --harmony-proxies flag if you running node <= 6.5.0 )

const Nuxt = require('nuxt')

const options = {
  routes: [], // merged with pages/*.vue routes
  css: ['/dist/boostrap.css'] // added to global app (App.vue)
  store: true // use vuex and require('./store')
  vendor: ['axios', 'public/plugin.js'], // Add vendors in vendor-bundle.js
  loading: false or { color: "blue", error: "red" } or 'components/loader'
  getContent: function (req, res) { return { lol: true } }
}

// Launch nuxt build with given options
new Nuxt(options)
.then((nuxt) => {
  // You can use nuxt.render(req, res) or nuxt.renderRoute(route, context)
})
.catch((error) {
  // If an error appended while building the project
})

Using nuxt.js as a middleware

You might want to use your own server with you configurations, your API and everything awesome your created with. That's why you can use nuxt.js as a middleware. It's recommended to use it at the end of your middlewares since it will handle the rendering of your web application and won't call next()

app.use(nuxt.render)

Render a specific route

This is mostly used for tests purpose but who knows!

nuxt.renderRoute('/about', context)
.then(function (html) {
  // HTML
})
.catch(function (error) {
  // And error appended while rendering the route
})

Examples

Please take a look at the examples/ folder. If you want to launch one example to see it live:

cd node_modules/nuxt/
bin/nuxt examples/hello-world
# Go to http://localhost:3000