egg-view-rax-ssr
Rax Server Side Render Plugin for Egg
Install
$ npm i egg-view-rax-ssr --save
Usage
// {app_root}/config/plugin.jsexportsraxssr = enable: true package: 'egg-view-rax-ssr';
Configuration
// {app_root}/config/config.default.jsexportsraxssr = // doctype: '<!doctype html>', // layout: path.join(app.baseDir, 'app/view/layout.html'), // manifest: path.join(app.baseDir, 'config/manifest.json'), // injectHeadRegex: /(<\/head>)/i, // injectBodyRegex: /(<\/body>)/i, // injectCss: true, // injectJs: true, // crossorigin: false, // injectRes: [], // mergeLocals: true, // fallbackToClient: true, // fallback to client rendering if server render failed // afterRender: (html, context) => { /* eslint no-unused-vars:off */ // return html; // },;
see config/config.default.js for more detail.
Render
render
Server Render, Call when server render bundle error, will try client render**
// controller/home.jsexports { ctx;};
renderClient
, Use Rax render layout
Client Render, Call when client render, render layout
exports.raxssr.layout
by Rax
// controller/home.jsexports { ctx;};
renderAsset
, Use render layout by viewEngine, default nunjucks
Asset Render, Call - when asset render, you can render layout
exports.raxssr.layout
by viewEngine, default useegg-view-nunjucks
- you must install the specified engine dependence, such as
egg-view-nunjucks
oregg-view-ejs
- The context provides an
asset
object that can getjs
,css
,state
information. layout template
use default viewEngine nunjucks
// controller/home.jsexports { ctx;};
scope render viewEngine config
// controller/home.jsexports { ctx;};
Example
Rax server side render example, please see egg-react-webpack-boilerplate
Questions & Suggestions
Please open an issue here.