dva view plugin for egg.
$ npm i egg-view-dva --save
// {app_root}/config/plugin.js
exports.dva = {
enable: true,
package: 'egg-view-dva',
};
Render in controller
// {app_root}/app/controller/test.js
class TestController extends Controller {
async index() {
const ctx = this.ctx;
const result = await ctx.renderPage({
url: ctx.request.url,
routes,
renderFullPage: ({state, html}) => {
const rtn = document.replace('<div id="root"></div>', () => {
return `<div id="root">${html}</div><div id="data" data-state="${entities.encode(JSON.stringify(state))}"></div>`;
});
return rtn;
},
createDvaApp: (opts) => {
return dva(opts);
},
onRenderSuccess,
timeout
});
// result {code, html, state, url, redirect}
}
}