Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dozjs/doz-ssr

DOZ server-side rendering
https://github.com/dozjs/doz-ssr

Last synced: 3 months ago
JSON representation

DOZ server-side rendering

Awesome Lists containing this project

README

        

# doz-ssr
DOZ server-side rendering


## Installation

```
npm install doz-ssr
```

## Example with Koa

#### server.js

```js
const Koa = require('koa');
const serve = require('koa-static');
const body = require('koa-body');
const DozSSR = require('doz-ssr');

const dozSSR = new DozSSR('./dist/index.html');

new Koa()
.use(serve('./public', {index: false}))
.use(body())
.use(async ctx => {
const [content] = await dozSSR.render(ctx.url, {
baseUrl: ctx.protocol + '://' + ctx.host
});
ctx.body = content;
})
.listen(3000);
```

#### bundle.js

**IMPORTANT**, since 2.0.0 it's necessary to call `window.SSR.ready()` inside your Doz app

```js
new Doz({
root: '#app',
template(h) {
return h`


`
},
onMount() {
if (window.SSR)
window.SSR.ready();
}
});
```

#### index.html

```html

MyApp


```

## API

{{>main}}

## PLUGIN

There is a plugin that adds a method and a directive:

```js
import ssrPlugin from 'doz-ssr/plugin'

Doz.use(ssrPlugin);

// If you call isSSR() method inside your app you can check if it is in server environment
Doz.component('my-component', function(h){
return h`

is server? ${this.isSSR()}

`
})

// If you want exclude (not visible) a component or part of html you can use the directive `d-ssr-invisible`
Doz.component('my-component', function(h){
return h`


hello my friend

wow!


`
})
```

## Changelog
You can view the changelog here

## License
doz-ssr is open-sourced software licensed under the MIT license

## Author
Fabio Ricali