描述
示例: nv_render_assistant({rendering_mode, root_folder, template, routes})
功能: 2.0
渲染助手
参数
rendering_mode
(String) (Optional)
渲染模式,可选字符串如下:
客户端渲染:"CSR"
服务器端渲染:"SSR"
root_folder
(String) (Optional)
网站 / 根目录使用的文件夹地址(该文件夹将完全暴露)
template
(Object) (Optional)
routes参数使用的模板
head
(Function) (Optional)
渲染html头部使用的模板。默认:
(req,route) => '<!DOCTYPE html><html lang="zh-cn"><head>'+ nv_head(req,route) +'</head><body>'
foot
(Function) (Optional)
渲染html尾部使用的模板。默认:(req,route) => '</body></html>'
routes
(Array) (Optional)
服务器端渲染定义的路由。定义后,可以使用 async:nv_render:路由名称
钩子对路由内容进行渲染
name
(String) (Require)
路由名称
path
(String) (Require)
路由地址(参考Express框架地址)
type
(String) (Optional)
默认:'text/html'。若不是默认值,则不会使用template模板
use_template
(Boolean) (Optional)
默认:true。若不是默认值,则不会使用template模板
status
(Number) (Optional)
默认:200。应在404地址使用规定的数值
priority
(Number) (Optional)
默认:10。路由注册优先级。404页面优先级应大于等于99
返回
(Void)
无
使用示例
nv_render_assistant({
// 渲染模式
rendering_mode: "SSR",
// 将主题 web 目录下的文件全部设为可以被根路径访问
root_folder: get_theme_path("./web/"),
// 通用模板参数,在默认的基础上嵌入了 #app 元素
template: {
head: (req,route) => `<!DOCTYPE html><html lang="zh-cn"><head>${ nv_head(req,route) }</head><body><div id="app">`,
foot: (req,route) => `</div></body></html>`,
},
routes: [
{name: 'home', path: '/'},
{name: 'sitemap', path: '/sitemap.xml', type: 'text/xml'},
{name: 'articles', path: '/articles'},
{name: 'articles_paged', path: '/articles/page/:current_page'},
{name: 'post', path: '/:post_slug'},
{name: 'post_comment_paged',path: '/:post_slug/comment-page-:comment_page'},
{name: 'term', path: '/:taxonomy/:term_slug'},
{name: 'term_paged', path: '/:taxonomy/:term_slug/page/:current_page'},
{name: '404', path: '*', status: 404, priority: 99},
]
})
// 接下来就可以用动作钩子进行渲染了,例如:
add_action('async:nv_render:home',(next,{echo,req,route})=>{
echo('这是HOME');
// 异步动作钩子,调用完后必须next
next();
})